/* @Date: Wed Dec 02 2015 16:33:36 GMT+0800 (中国标准时间)

 */
! function(t) {
    function e(i) {
		if (n[i]) return n[i].exports;
		var a = n[i] = {
			exports: {},
			id: i,
			loaded: !1
		};
		return t[i].call(a.exports, a, a.exports, e), a.loaded = !0, a.exports
	}
	var n = {};
	return e.m = t, e.c = n, e.p = "", e(0)
}([
	function(t, e, n) {
		(function(t) {
			"use strict";
			! function() {
				n(2), n(4)() || n(5) || (n(7), n(8), t.logoName = n(9)(8), t.pageInfo = n(10).getPageInfo(), 0 != t.pageInfo.type && (navigator.userAgent.indexOf("Maxthon") > -1 && (location.host.indexOf("tmall") > -1 || location.host.indexOf("95095") > -1) && (t.maxthon_tmall = !0), t.plugins = [n(11)], n(27), n(28)(), n(30).init()))
			}()
		}).call(e, n(1))
	},
	function(t, e, n) {
		"use strict";
		t.exports = {
			modules: {},
			version: 1449045198328,
			browser: {},
			debug: /gwdebug/.test(window.location.href),
			extend: function(t) {
				for (var e in t) this[e] = t[e]
			}
		}
	},
	function(t, e, n) {
		(function(t) {
			"use strict";
			n(3), t.extend({
				union: "union_gwdang",
				show_tip: 1,
				show_wishlist: 1,
				show_guess: 1,
				show_mainbar: 1,
				show_promo: 1,
				set_force: !1,
				default_style: "top",
				ut: "&trans=1",
				from_device: "default",
				go_union: "http://u.gwdang.com/union/go",
				p_id: "",
				is_open: 0,
				position: 0,
				style: "",
				notice: 0,
				first: 0,
				fold: 0,
				p_fold: 0,
				pop_share: 1,
				email: "",
				subsite_id: "",
				force: [],
				on_building: !0,
				built_counter: 0,
				collectionChanged: !0,
				gwd_browser_type: 1,
				gwd_cnzz: "",
				is_site_page: null,
				href: window.location ? window.location.href : "",
				collectInfo: {
					dp_id: "",
					title: "",
					site_id: 0,
					url: "",
					img: "",
					price: "",
					comment: ""
				},
				now_dp_id: "",
				where_buy_dps: "",
				width: document.documentElement.clientWidth > 0 ? document.documentElement.clientWidth : document.body.clientWidth,
				timer: null,
				timer2: null,
				timer3: null,
				timer4: null,
				timer5: null,
				timer5_mutex: !0,
				height: 0,
				scrollTop: 0,
				page_size: 6,
				page_size_mini: 4,
				page_now: {
					b2c: 1,
					taobao: 1,
					tmall: 1,
					also_buy: 1,
					promotion: 1,
					b2c_fuzzy: 1
				},
				page_total: {
					b2c: 1,
					taobao: 1,
					tmall: 1,
					also_buy: 1,
					promotion: 1,
					b2c_fuzzy: 1
				},
				total_num: {
					b2c: 6,
					taobao: 6,
					tmall: 6,
					also_buy: 6,
					promotion: 6,
					b2c_fuzzy: 6
				},
				module_name: ["b2c", "taobao", "tmall", "also_buy", "promotion", "b2c_fuzzy"],
				dpIsBook: !1,
				hiddenFavorButton: !1,
				save_tbres_data: null,
				save_promo_len: 0,
				save_price_trend_data: null,
				save_promo_data: null,
				topResizeTimer: null,
				bottomResizeTimer: null
			})
		}).call(e, n(1))
	},
	function(t, e, n) {
		(function(t) {
			"use strict";
			var e = "https:" === location.protocol ? "https:" : "http:";
			t.extend({
				server: e + "//browser.gwdang.com",
				zhitongche: e + "//t.readindex.com",
				c_server: e + "//www.gwdang.com",
				s_server: e + "//s1.gwdang.com",
				product_keyword: e + "//keyword.gwdang.com",
				domain: "browser"
			})
		}).call(e, n(1))
	},
	function(t, e) {
		"use strict";
		t.exports = function() {
			var t = document.location.host;
			return t.indexOf("hao123") > -1 || t.indexOf("baidu") > -1 ? !0 : !1
		}
	},
	function(t, e, n) {
		"use strict";
		var i = n(6);
		if (i && i.parentNode.removeChild(i), document.getElementById("GWDANG_HAS_BUILT")) t.exports = !0;
		else {
			var a = document.createElement("div");
			a.id = "GWDANG_HAS_BUILT";
			var o = document.getElementsByTagName("head");
			o && o[0] && (o = o[0]), o.appendChild(a), t.exports = !1
		}
	},
	function(t, e) {
		"use strict";

		function n() {
			if (document.currentScript) return document.currentScript;
			for (var t = document.getElementsByTagName("script"), e = 0; e < t.length; e++)
				if (/gwdang-notifier/i.test(t[e].src)) return t[e]
		}
		t.exports = n()
	},
	function(t, e) {
		"use strict";
		Function.prototype.bind || (Function.prototype.bind = function(t) {
			if ("function" != typeof this) throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");
			var e = Array.prototype.slice.call(arguments, 1),
				n = this,
				i = function() {},
				a = function() {
					return n.apply(this instanceof i ? this : t, e.concat(Array.prototype.slice.call(arguments)))
				};
			return i.prototype = this.prototype, a.prototype = new i, a
		}), Array.prototype.indexOf || (Array.prototype.indexOf = function(t, e) {
			var n;
			if (null == this) throw new TypeError('"this" is null or not defined');
			var i = Object(this),
				a = i.length >>> 0;
			if (0 === a) return -1;
			var o = +e || 0;
			if (Math.abs(o) === 1 / 0 && (o = 0), o >= a) return -1;
			for (n = Math.max(o >= 0 ? o : a - Math.abs(o), 0); a > n;) {
				if (n in i && i[n] === t) return n;
				n++
			}
			return -1
		})
	},
	function(t, e, n) {
		(function(t) {
			"use strict";
			"ActiveXObject" in window && (t.browser = {
				engine: "trident",
				agent: "msie",
				ver: window.XMLHttpRequest ? document.querySelector ? document.addEventListener ? window.atob ? window.execScript ? 10 : 11 : 9 : 8 : 7 : 6
			}), t.browser.version = t.browser.ver, "msie" === t.browser.agent && (t.browser.msie = !0), t.IE6 = "msie" == t.browser.agent && 6 === t.browser.ver, t.IE7 = "msie" == t.browser.agent && 7 === t.browser.ver, t.IE8 = "msie" == t.browser.agent && 8 === t.browser.ver, t.IE9 = "msie" == t.browser.agent && 9 === t.browser.ver, t.IE10 = "msie" == t.browser.agent && 10 === t.browser.ver, t.IE11 = "msie" == t.browser.agent && 11 === t.browser.ver
		}).call(e, n(1))
	},
	function(t, e) {
		"use strict";
		t.exports = function(t) {
			for (var e = "0123456789qwertyuioplkjhgfdsazxcvbnm", n = "", i = 0; t > i; i++) n += e.charAt(Math.ceil(1e8 * Math.random()) % e.length);
			return n
		}
	},
	function(t, e, n) {
		var i;
		(function(a) {
			"use strict";
			i = function() {
				var t, e = {},
					n = window.location.href;
				e.isAvailablePage = function() {
					for (var t in i)
						if (n.match(new RegExp(t, "i"))) return i[t];
					return !1
				}, e.isProductPage = function(t) {
					t = t || n;
					for (var e in o)
						if (t.match(new RegExp(e, "i"))) return o[e];
					return !1
				}, e.isInBanList = function() {
					if (!a.iframe) {
						var t = n.match(/[&\?]no_url/);
						if (!t && (self.location != top.location || self.frameElement && "IFRAME" == self.frameElement.tagName || window.top != window.self)) return !0
					}
					var e = n;
					return location.href.indexOf("?") > 0 && (e = n.substr(0, n.indexOf("?"))), null != e.match(/carters|feifei\.com\/order\//) ? !1 : null != e.match(/(?:cart|member|order|myhome|picture_index|handle-buy-box|chat|t.sina.com.cn|discussion|union.dangdang|eve.360buy|gwdang.com|bank.vmall|checkout|confirm|gateway|trade|http:\/\/i.taobao.com|we.taobao.com)/gi) ? !0 : !1
				};
				var i = {
						"//www\\.kjt\\.com": "kjt",
						"lifevc.com": "lifevc",
						"coocaa\\.com": "coocaa",
						"www\\.nubia\\.cn": "nubia",
						"www\\.kzj365\\.com": "kzj365",
						"www\\.kaola\\.com": "kaola",
						"www\\.ymatou\\.com": "ymatou",
						"www\\.metao\\.com": "metao",
						"shop\\.philips\\.com\\.cn": "philips",
						"shop\\.tcl\\.com": "tcl",
						"www\\.e-changhong\\.com": "changhong",
						"shop\\.konka\\.com": "konka",
						"shop\\.hisense\\.com": "hisense",
						"www\\.ineigo\\.com": "ineigo",
						"www\\.skg\\.com": "skg",
						"www\\.k-touch\\.cn": "k-touch",
						"(?:www|shop)\\.gionee\\.com": "gionee",
						"(?:www|store)\\.oppo\\.com": "oppo",
						"gfive\\.b2c\\.eqimingxing\\.com": "gfive",
						"shop\\.vivo\\.com\\.cn": "vivo",
						"www\\.grainger\\.cn": "grainger",
						"(?:mall|piao)\\.163\\.com": "wy163",
						"t\\.dianping\\.com": "dianping",
						"nuomi\\.com": "nuomi",
						"meituan\\.com": "meituan",
						"www\\.ebay\\.com": "ebay",
						"yao\\.95095\\.com": "taobao",
						"feiniu\\.com": "feiniu",
						"item\\.feiniu\\.com": "feiniu",
						"feifei\\.(?:cn|com)": "feifei",
						"guang\\.com": "guang",
						"www\\.meilishuo\\.com": "meilishuo",
						"mogujie\\.com": "mogujie",
						"shop\\.coolpad\\.cn": "coolpad",
						"\\.sephora\\.cn": "sephoracps",
						"cn\\d*\\.strawberrynet\\.com": "strawberrynet",
						"\\.yesmywine\\.com": "yesmywine",
						"(\\.)?yiguo\\.com": "yiguo",
						"\\.wanggou\\.com": "wanggou",
						"mall\\.jia\\.com": "jia",
						"weigou\\.baidu\\.com": "baidu-weigou",
						"\\.(xiao)?mi\\.com": "xiaomi",
						"shop\\.letv\\.com": "letv",
						"\\.handu\\.com": "handu",
						"\\.taoshu\\.com": "taoshu",
						"\\.ouku\\.com": "ouku",
						"\\.j1\\.com": "j1",
						"\\.zm7\\.cn": "zm7",
						"\\.1688\\.com": "1688",
						"\\.yiwugou\\.com": "yiwugou",
						"\\.zhiwo\\.com": "zhiwo",
						"\\.muyingzhijia\\.com": "muyingzhijia",
						"\\.vmall\\.com": "vmall",
						"\\.didamall\\.com": "didamall",
						"\\.xiji.com": "xiji",
						"\\.xijie.com": "xijie",
						"\\.miqi\\.cn": "miqi",
						"\\.zol\\.com(?:$|/|\\?)": "zol",
						"zol\\.com\\.cn": "zol",
						"\\.camel\\.com\\.cn": "camel",
						"camel.com.cn": "camel",
						"(\\.)?homevv\\.com": "homevv",
						"\\.paixie\\.net": "paixie",
						"\\.tao3c\\.com": "tao3c",
						"\\.amazon\\.(?:cn|com)": "amazon",
						"^(?:http|https)://(?!union).+\\.dangdang\\.com": "dangdang",
						"(?:http|https)://s8\\.taobao\\.com": "s8",
						"^(?:http|https)://(?!buy|cart|lz).+\\.(?:taobao)\\.(?:com|hk)": "taobao",
						"\\.(?:360buy|jd)\\.com": "360buy",
						"\\.(?:360buy|jd)\\.hk": "360buy",
						"\\.newegg(\\.com)?\\.cn": "newegg",
						"\\.redbaby\\.com\\.cn": "redbaby",
						"51buy\\.com": "51buy",
						"yixun\\.com": "51buy",
						"\\.okbuy\\.com": "okbuy",
						"\\.suning\\.com": "suning",
						"\\.coo8\\.com": "coo8",
						"\\.lusen\\.com": "lusen",
						"\\.gome\\.com\\.cn": "gome",
						"\\.gomehome\\.com": "gome",
						"\\.yhd\\.com": "yihaodian",
						"\\.yihaodian\\.com": "yihaodian",
						"\\.1mall\\.com": "yihaodian",
						"\\.womai\\.com": "womai",
						"\\.leyou\\.com\\.cn": "leyou",
						"\\.shopin\\.net": "shopin",
						"\\.no5\\.com\\.cn": "no5",
						"\\.xiu\\.com": "xiu",
						"\\.mbaobao\\.com": "mbaobao",
						"vjia\\.com": "vjia",
						"\\.360kxr\\.com": "360kxr",
						"\\.m6go\\.com": "m6go",
						"\\.gou\\.com": "m6go",
						"\\.99read\\.com": "99read",
						"\\.china-pub\\.com": "china-pub",
						"\\.bookschina\\.com": "bookschina",
						"\\.efeihu\\.com": "efeihu",
						"\\.yintai\\.com": "yintai",
						"\\.quwan\\.com": "quwan",
						"\\.k121\\.com": "k121",
						"k121\\.com": "k121",
						"\\.happigo\\.com": "happigo",
						"\\.gap\\.cn": "gap",
						"\\.binggo\\.com/": "binggo",
						"\\.yougou\\.com": "yougou",
						"\\.jxdyf\\.com": "jxdyf",
						"\\.winxuan\\.com": "winxuan",
						"\\.bookuu\\.com": "bookuu",
						"\\.jiuxian\\.com": "jiuxian",
						"vancl\\.com": "vancl",
						"111\\.com\\.cn": "111",
						"sfbest\\.(?:hk|com)": "sfbest",
						"\\.vip(shop)?\\.com": "vipshop",
						"jumei\\.com": "jumei",
						"jumeiglobal\\.com": "jumeiglobal",
						"lefeng\\.com": "lefeng",
						"benlai\\.com": "benlai",
						"letao\\.com": "letao",
						"139shop\\.com": "139shop",
						"zzl365\\.com": "zzl365",
						"fclub\\.cn": "fclub",
						"tiantian\\.com": "tiantian",
						"taoxie\\.com": "taoxie",
						"gjw\\.com": "gjw",
						"d1\\.com\\.cn": "d1",
						"\\.ihush\\.com": "ihush",
						"\\.s\\.cn": "s",
						"\\.(?:moonbasa|korirl|rutisher|suorang|alaves|ing2ing|0-100s|qjherb|monteamor)\\.com": "moonbasa",
						"wangjiu\\.com": "wangjiu",
						"liebo\\.com": "liebo",
						"esprit\\.cn": "esprit",
						"lamiu\\.com": "lamiu",
						"aimer\\.com\\.cn": "aimer",
						"kadang\\.com": "kadang",
						"lizi\\.com": "lizi",
						"metromall\\.com\\.cn": "metromall",
						"pba\\.cn": "pba",
						"shangpin\\.com": "shangpin",
						"wbiao\\.cn": "wbiao",
						"handuyishe\\.com": "handuyishe",
						"ehaier\\.com": "ehaier",
						"secoo\\.com": "secoo",
						"(?:vivian|linkmasa|masamaso)\\.(?:com|cn)": "masamaso",
						"naruko\\.com\\.cn": "naruku",
						"gaojie\\.com": "gaojie",
						"zhenpin\\.com": "zhenpin",
						"zhen\\.com": "zhen",
						"sportica\\.cn": "sportica",
						"xifuquan\\.com": "xifuquan",
						"milier\\.com": "milier",
						"\\.nop\\.cn": "nop",
						"lenovo\\.com": "lenovo",
						"shop\\.lenovo\\.com\\.cn": "lenovo",
						"shop\\.lenovomobile\\.com": "lenovo",
						"\\.189\\.cn": "189",
						"\\.hicdma\\.com": "hicdma",
						"\\.e100\\.cn": "e100",
						"store\\.samsung\\.com": "samsung",
						"apple\\.com": "apple",
						"store\\.meizu\\.com": "meizu",
						"\\.958shop\\.com": "958shop",
						"\\.okhqb\\.com": "okhqb",
						"\\.ztedevice\\.com\\.cn": "ztedevice",
						"\\.kuaishubao\\.com": "kuaishubao",
						"\\.lvyoumall\\.com": "lvyoumall",
						"x\\.com\\.cn": "x",
						"lingshi\\.com": "lingshi",
						"ctrip\\.com": "ctrip",
						"zuipin\\.cn": "zuipin",
						"bbready\\.com": "bbready",
						"yohobuy\\.com": "yohobuy",
						"lvmama\\.com": "lvmama",
						"qmango\\.com": "qmango",
						"228cai\\.com": "228cai",
						"ikjtao\\.com": "ikjtao",
						"bagtree\\.cn": "bagtree",
						"manzuo\\.com": "manzuo",
						"yichengpin\\.com": "yichengpin",
						"zgzcw\\.com": "zgzcw",
						"8791\\.com": "8791",
						"mia\\.com": "miyabaobei",
						"ule\\.com": "ule",
						"minshengec\\.com": "minshengec",
						"wangfujing\\.com": "wangfujing",
						"qunar\\.com": "qunar",
						"meilele\\.com": "meilele",
						"55tuan\\.com": "55tuan",
						"jinjianginns\\.com": "jinjianginns",
						"elong\\.com": "elong",
						"podinns\\.com": "podinns",
						"mangocity\\.com": "mangocity",
						"500\\.com": "500",
						"supuy\\.com": "supuy",
						"ly\\.com": "ly",
						"e-lining\\.com": "e-lining",
						"lining\\.com": "lining",
						"koolearn\\.com": "koolearn",
						"springtour\\.com": "springtour",
						"qinqinbaby\\.com": "qinqinbaby",
						"winenice\\.com": "winenice",
						"sasa\\.com": "sasa",
						"5lux\\.com": "5lux",
						"228\\.com\\.cn": "228",
						"rrs\\.com": "rrs",
						"mf910\\.com": "mf910",
						"buy\\.ccb\\.com": "ccb",
						"banggo\\.com": "banggo",
						"amazon\\.co\\.jp": "amazon",
						"amazon\\.in": "amazon",
						"amazon\\.fr": "amazon",
						"amazon\\.de": "amazon",
						"amazon\\.it": "amazon",
						"amazon\\.co.uk": "amazon",
						"amazon\\.nl": "amazon",
						"amazon\\.es": "amazon",
						"amazon\\.ca": "amazon",
						"amazon\\.com\\.mx": "amazon",
						"amazon\\.com\\.br": "amazon",
						"amazon\\.com\\.au": "amazon",
						"//store\\.logitech\\.com\\.cn": "logitech",
						"boohee\\.com": "boohee",
						"nike\\.com": "nike",
						"jianke\\.com": "jianke",
						"360kad\\.com": "360kad",
						"lbxcn\\.com": "lbxcn",
						"meici\\.com": "meici",
						"beibei\\.com": "beibei",
						"aliexpress.com": "aliexpress",
						"6pm\\.com": "6px",
						"gnc\\.com": "gnc",
						"myhabit\\.com": "myhabit",
						"shopbop\\.com": "shopbop",
						"drugstore\\.com": "drugstore",
						"sierratradingpost\\.com": "sierratradingpost",
						"newegg\\.com": "newegg-us",
						"jomashop\\.com": "jomashop",
						"ashford\\.com": "ashford",
						"lookfantastic\\.com": "lookfantastic",
						"rei\\.com": "rei",
						"iherb\\.com": "iherb",
						"carters\\.com": "carters",
						"endclothing\\.com": "endclothing",
						"campsaver\\.com": "campsaver",
						"global\\.rakuten\\.com": "rakuten",
						"100yue\\.com": "100yue",
						"woot\\.com": "woot",
						"haitaocheng\\.com": "haitaocheng",
						"joesnewbalanceoutlet\\.com": "joesnewbalanceoutlet",
						"finishline\\.com": "finishline",
						"vitacost\\.com": "vitacost",
						"groupon.com": "groupon",
						"supumall\\.com": "supumall",
						"www1\\.macys\\.com": "macys",
						"moosejaw\\.com": "moosejaw",
						"lemall\\.com": "lemall",
						"sfht\\.com": "sfht",
						"jiumei\\.com": "jiumei",
						"chunshuitang\\.com": "chunshuitang",
						"daling.com": "daling",
						"oyeah\\.com": "oyeah",
						"morefood\\.com": "morefood",
						"yummy77\\.com": "yummy77",
						"fruitday\\.com": "fruitday",
						"gilt\\.com": "gilt",
						"fengqu\\.com": "fengqu",
						"\\.mei\\.com": "mei",
						"//www\\.mei\\.com/silo/.*-event-event\\.html": "mei",
						"\\.vsigo\\.cn": "vsigo",
						"keede\\.com": "keede",
						"showjoy\\.com": "showjoy",
						"ocj\\.com\\.cn": "ocj",
						"ocj\\.kr": "ocj",
						"http://www\\.tmall\\.com/wow/act/14931/1111": "tmall",
						"sundan\\.com": "sundan"
					},
					o = {
						"dest/test\\.html": "test",
						"www\\.lingshi\\.com/product/lingshi-\\d+\\.htm": "lingshi",
						"www\\.nubia\\.cn/product/[a-zA-Z0-9]+": "nubia",
						"www\\.nubia\\.cn/product\\.php\\?sid=\\d+&id=\\d+": "nubia",
						"www\\.nubia\\.cn/product\\.php\\?sid=\\d+": "nubia",
						"//www\\.kzj365\\.com/goods-\\d+\\.html": "kzj365",
						"//www\\.kaola\\.com/product/\\d+\\.html": "kaola",
						"^(?:http|https)://www\\.ymatou\\.com/product/[a-zA-Z0-9-]+\\.html": "ymatou",
						"//detail\\.metao\\.com/products/\\d+": "metao",
						"^(?:http|https):tv\\.coocaa\\.com/goods/\\d+.htm": "coocaa",
						"^(?:http|https)://www\\.coocaa\\.com/goods/[a-z0-9_]+\\.html": "coocaa",
						"www\\.lifevc\\.com/item/\\d+": "lifevc",
						"^(?:http|https)://www\\.supuy\\.com/products/\\d+\\.html": "supuy",
						"http://www\\.mia\\.com/item-\\d+\\.html": "miyabaobei",
						"http://www\\.wangfujing\\.com/item/[0-9]+": "wangfujing",
						"^(?:http|https)://global\\.gou\\.com/product_[0-9]+\\.html": "gou",
						"^(?:http|https)://www\\.gou\\.com/[a-z0-9_]+\\.html": "gou",
						"^(?:http|https)://(?:www\\.|)ikjtao\\.com/goods-[0-9]+\\.html": "ikjtao",
						"^(?:http|https)://(?:item|np)\\.ule\\.com/item/[0-9-]+\\.html": "ule",
						"^(?:http|https)://shop\\.philips\\.com\\.cn/product/\\w+/detail\\.htm": "philips",
						"^(?:http|https)://shop\\.tcl\\.com/ProductDetail/index/id/\\d+\\.html": "tcl",
						"^(?:http|https)://www\\.e-changhong\\.com/webapp/wcs/stores/servlet/Product[\\w_-]+": "changhong",
						"^(?:http|https)://shop\\.konka\\.com/goods\\.php\\?id=\\d+": "konka",
						"^(?:http|https)://shop\\.hisense\\.com/Home/Products/detail/gid/\\d+": "hisense",
						"^(?:http|https)://www\\.ineigo\\.com/Product/product.aspx\\?&?id=\\d+": "ineigo",
						"^(?:http|https)://www\\.skg\\.com/\\d+\\.html": "skg",
						"^(?:http|https)://www\\.oyeah\\.com/giveaway-[0-9a-z-]+": "oyeah",
						"^(?:http|https)://www\\.morefood\\.com/products/info/[0-9]+\\.html": "morefood",
						"^(?:http|https)://www\\.zhen\\.com/product-[0-9]+\\.html": "zhen",
						"^(?:http|https)://shop\\.vivo\\.com\\.cn/index\\.php/product-\\d+\\.html": "vivo",
						"^(?:http|https)://gfive\\.b2c\\.eqimingxing\\.com/product-\\d+\\.html": "gfive",
						"^(?:http|https)://store\\.oppo\\.com/goods/\\d+": "oppo",
						"^(?:http|https)://www\\.6pm\\.com/product/": "6pm",
						"^(?:http|https)://www\\.6pm\\.com/[a-z]+-[a-z]+-[0-9a-z]+": "6pm",
						"^(?:http|https)://www\\.sierratradingpost\\.com/[a-z0-9]+-[a-z0-9]+-[a-z0-9]+-[a-z0-9]+-[a-z0-9]+-": "sierratradingpost",
						"^(?:http|https)://shop\\.gionee\\.com/goods/\\d+": "gionee",
						"^(?:http|https)://store\\.lining\\.com/shop/goods-[0-9]+": "lining",
						"^(?:http|https)://www\\.mf910\\.com/product-[0-9]+\\.html": "mf910",
						"^(?:http|https)://www\\.k-touch\\.cn/product/detail/prod_id/\\d+\\.html": "k-touch",
						"^(?:http|https)://item\\.grainger\\.cn/g/\\d+": "grainger",
						"^(?:http|https)://piao\\.163\\.com/\\w+/movie/\\d+\\.html": "wy163",
						"^(?:http|https)://mall\\.163\\.com/p/product/\\d+\\.html": "wy163",
						"^(?:http|https)://detail\\.yao.\\95095\\.com/item\\.htm": "taobao-95095",
						"^(?:http|https)://www\\.ebay\\.com/itm/[0-9a-zA-Z]+": "ebay",
						"^(?:http|https)://www\\.100yue\\.com/product-[0-9]+\\.html": "100yue",
						"^(?:http|https)://www\\.feiniu\\.com/item/[-\\w]+": "feiniu",
						"^(?:http|https)://www\\.lemall\\.com/product/[a-z0-9-]+\\.html": "lemall",
						"^(?:http|https)://item\\.feiniu\\.com/[0-9]+": "feiniu",
						"^(?:http|https)://www\\.bbready\\.com/product-[0-9]+": "bbready",
						"^(?:http|https)://www\\.zuipin\\.cn/[0-9a-z-]+\\.html": "zuipin",
						"^(?:http|https)://item\\.feifei\\.(?:cn|com)/\\w+\\.html": "feifei",
						"^(?:http|https)://www\\.feifei\\.com/order/-/product-info/productname/[0-9]+\\.html": "feifei",
						"^(?:http|https)://guang\\.com/baobei/\\d+": "guang",
						"^(?:http|https)://www\\.haitaocheng\\.com/Product/Detail-\\d+\\.html": "haitaocheng",
						"^(?:http|https)://www\\.rrs\\.com/product/[0-9]+\\.html": "rrs",
						"^(?:http|https)://shop\\.ccb\\.com/products/pd_[0-9]+\\.jhtml": "ccb",
						"^(?:http|https)://www\\.meilishuo\\.com/(?:prom|share)/item/\\d+": "meilishuo",
						"^(?:http|https)://www\\.meilishuo\\.com/share/[\\d]+": "meilishuo",
						"^(?:http|https)://www\\.mogujie\\.com/tuan/detail/\\w+": "mogujie",
						"^(?:http|https)://shop\\.mogujie\\.com/detail/\\w+": "mogujie",
						"^(?:http|https)://www\\.mogujie\\.com/note/.*?showtype=good": "mogujie",
						"^(?:http|https)://www\\.supumall\\.com/products/[0-9]+\\.html": "supumall",
						"^(?:http|https)://shop\\.coolpad\\.(?:com|cn)/goods/\\d+\\.htm": "coolpad",
						"^(?:http|https)://(www\\.)?yiguo\\.com/product/\\d+\\.html": "yiguo",
						"^(?:http|https)://(www\\.)?yiguo\\.com/CommodityDetail\\.aspx\\?CommodityId=": "yiguo",
						"^(?:http|https)://item\\.wanggou\\.com/": "wanggou",
						"^(?:http|https)://mall\\.jia\\.com/item/": "jia",
						"^(?:http|https)://www\\.jiumei\\.com/product/[a-z0-9_-]+\\.shtml": "jiumei",
						"^(?:http|https)://weigou\\.baidu\\.com/item": "baidu-weigou",
						"^(?:http|https)://shop\\.letv\\.com/product/": "letv",
						"^(?:http|https)://www\\.(xiao)?mi\\.com/(goods|item)/": "xiaomi",
						"^(?:http|https)://item\\.mi\\.com/[0-9]+\\.html": "xiaomi",
						"^(?:http|https)://item\\.mi\\.com/buyphone/[a-z0-9]+": "xiaomi",
						"^(?:http|https)://item\\.mi\\.com/static/[a-z0-9]+": "xiaomi",
						"^(?:http|https)://www\\.handu\\.com/goods-": "handu",
						"^(?:http|https)://www\\.yummy77\\.com/product/[0-9]+\\.html": "yummy77",
						"^(?:http|https)://www\\.fruitday\\.com/web/pro/[0-9]+": "fruitday",
						"^(?:http|https)://www\\.benlai\\.com/item-\\d+": "benlai",
						"^(?:http|https)://www\\.benlai\\.com/[a-z]+/item-[0-9]+\\.html": "benlai",
						"^(?:http|https)://www\\.taoshu\\.com/\\d+\\.html": "taoshu",
						"^(?:http|https)://www\\.meilele\\.com/category-[a-z]+/goods-[0-9]+\\.html": "meilele",
						"^(?:http|https)://www\\.meilele\\.com/tuangou/info-[0-9]+.html": "meilele-tuan",
						"^(?:http|https)://www\\.meilele\\.com/miaosha/ms-[0-9]+.html": "meilele-ms",
						"^(?:http|https)://www\\.gjw\\.com/product/item": "gjw",
						"^(?:http|https)://www\\.gjw\\.com/Home/TuanItem/\\d+\\.htm": "gjw",
						"^(?:http|https)://www\\.gjw\\.com/TryDrink/item-id-[0-9]+\\.htm": "gjw",
						"^(?:http|https)://store\\.apple\\.com/cn/product/": "apple",
						"^(?:http|https)://store\\.apple\\.com/cn/buy-iphone/iphone\\w+": "apple",
						"^(?:http|https)://store\\.apple\\.com/cn/buy-mac/\\w+-\\w+\\?product=\\w+/\\w+": "apple",
						"^(?:http|https)://store\\.apple\\.com/cn/buy-ipad/ipad-\\w+-\\w+": "apple",
						"^(?:http|https)://store\\.apple\\.com/cn/buy-ipod/ipod-\\w+-\\w+": "apple",
						"^(?:http|https)://www\\.apple\\.com/cn/shop/buy-[a-z]+/[a-z0-9-]+": "apple",
						"^(?:http|https)://www\\.j1\\.com/product/": "j1",
						"^(?:http|https)://miao\\.j1\\.com/product/": "j1-miao",
						"^(?:http|https)://www\\.zzl365\\.com/product-\\d+": "zzl365",
						"^(?:http|https)://mobile\\.139shop\\.com/.*?/\\d+/\\d+\\.htm": "139shop",
						"^(?:http|https)://detail\\.1688\\.com/offer/\\d+": "1688",
						"^(?:http|https)://www\\.yiwugou\\.com/product/detail/[0-9]+\\.html": "yiwugou",
						"^(?:http|https)://www\\.zhiwo\\.com/product/\\d+": "zhiwo",
						"^(?:http|https)://www\\.zhiwo\\.com/group/\\d+": "zhiwo-tuan",
						"^(?:http|https)://[^\\.]+\\.miqi\\.cn/[^/]+/p\\d+": "miqi",
						"^(?:http|https)://www\\.miqi\\.cn/[a-z]+/[0-9]+\\.html": "miqi",
						"^(?:http|https)://www\\.camel\\.com\\.cn/[a-zA-Z0-9]+(_[a-zA-Z0-9]+)+/[\\w]+\\.shtml": "camel",
						"^(?:http|https)://www\\.camel\\.com\\.cn/[a-zA-Z0-9_]+/[A-Za-z0-9]+\\.shtml": "camel",
						"^(?:http|https)://www\\.kuaishubao\\.com/\\d+/\\d+": "kuaishubao",
						"^(?:http|https)://www.kuaishubao.com/g/": "kuaishubao",
						"^(?:http|https)://www\\.juegg\\.com/templets/DefaultGreen/Product\\.jsp": "juegg",
						"^(?:http|https)://mall\\.10010\\.com/goodsdetail/[\\d]+\\.html": "mall10010",
						"^(?:http|https)://www\\.wowsai\\.com/goods/": "wowsai",
						"^(?:http|https)://www\\.tianpin\\.com/item/": "tianpin",
						"^(?:http|https)://www\\.tootoo\\.cn/product-": "tootoo",
						"^(?:http|https)://www\\.tootoo\\.cn/[a-z]+/detail/[0-9]+": "tootoo",
						"^(?:http|https)://item\\.minshengec\\.com/[a-z]-(?:|[a-zA-Z%0-9]+)/[a-z0-9-]+\\.jhtml": "minshengec",
						"^(?:http|https)://www\\.sfbest\\.com/html/(sfv)?products/": "sfbest",
						"^(?:http|https)://ht\\.sfbest\\.hk/[0-9a-z_]+\\.htm": "sfbest",
						"^(?:http|https)://shop\\.lenovo\\.com\\.cn/product-": "lenovo",
						"^(?:http|https)://shop\\.lenovomobile\\.com/ShowPhone.aspx\\?GdsID=": "lenovo",
						"^(?:http|https)://www\\.lenovo\\.com\\.cn/product/[0-9]+\\.html": "lenovo",
						"^(?:http|https)://www\\.vmall\\.com/item-": "vmall",
						"^(?:http|https)://www\\.vmall\\.com/product/": "vmall",
						"^(?:http|https)://www\\.ihush\\.com/product": "ihush",
						"^(?:http|https)://(?:www\\.)?fclub\\.cn/goods": "fclub",
						"^(?:http|https)://item\\.yohobuy\\.com/product/\\w+/\\w+\\.html": "yohobuy",
						"^(?:http|https)://www\\.fclub\\.cn/tuangouDetail\\.html": "fclub",
						"^(?:http|https)://ju\\.taobao\\.com/tg/home\\.htm.*(item_)?id=[\\d]+": "taobao-ju",
						"//detail.tmall.com/item.htm": "tmall",
						"//world.tmall.com/item/[0-9]+.htm": "tmall",
						"//detail.tmall.hk/hk/item.htm": "tmall",
						"//detail.tmall.hk/item.htm": "tmall",
						"//item.taobao.com/item.htm": "taobao",
						"//2.taobao.com/item.htm": "taobao-xianyu",
						"//ai.taobao.com/auction": "ai-taobao",
						"//chaoshi\\.detail\\.tmall\\.com/item\\.htm": "tmall",
						"^(?:http|https)://detail\\.ju\\.taobao\\.com/home\\.htm": "taobao-ju",
						"^(?:http|https)://(?:archive-shop|shop|www|day|lux)\\.vip(shop)?\\.com/detail": "vipshop",
						"^(?:http|https)://tuan\\.lefeng\\.com/.*?/\\d+_\\d+\\.html": "lefeng",
						"^(?:http|https)://(?:www|product)\\.lefeng\\.com/(product|pklist)/": "lefeng",
						"^(?:http|https)://(?:www|1hour)\\.jxdyf\\.com/product[-/][\\d]+": "jxdyf",
						"^(?:http|https)://www\\.jxdyf\\.com/ProductContent": "jxdyf",
						"^(?:http|https)://www\\.tnice\\.com/product/": "tnice",
						"^(?:http|https)://auction1\\.paipai\\.com/": "paipai",
						"^(?:http|https)://item\\.xinbaigo\\.com/Goods/StyleDetail": "xinbaigo",
						"^(?:http|https)://www\\.orbis\\.com\\.cn.*product\\-[\\d]+": "orbis",
						"^(?:http|https)://www\\.sfht\\.com/detail/[0-9]+\\.html": "sfht",
						"^(?:http|https)://(?:www|cosmetic)\\.d1\\.com\\.cn/product/": "d1",
						"^(?:http|https)://www\\.chazuo\\.com/Product/p\\-[\\d]+": "chazuo",
						"^(?:http|https)://www\\.u1baby\\.com/product\\-[\\d]+": "u1baby",
						"^(?:http|https)://(www\\.)?homevv\\.com/vvshopProductView/pid\\-[\\d]+\\.jhtml": "homevv",
						"^(?:http|https)://(www\\.)?homevv\\.com/vvshopProductView\\.jhtml": "homevv",
						"^(?:http|https)://www\\.paixie\\.net/shoe\\-.+\\.html": "paixie",
						"^(?:http|https)://tuan\\.paixie\\.net/[0-9]+\\.html": "paixie-tuan",
						"^(?:http|https)://faxian\\.paixie\\.net/[0-9]+\\.html": "paixie-faxian",
						"^(?:http|https)://www\\.tao3c\\.com/(outlets/)?product/[\\d]+\\.html": "tao3c",
						"^(?:http|https)://www\\.zm7\\.cn/goods": "zm7",
						"^(?:http|https)://s\\.etao\\.com/item/[\\d]+\\.html": "etao",
						"^(?:http|https)://s\\.etao\\.com/search\\?epid=[\\d]+": "etao",
						"^(?:http|https)://product\\.pchouse\\.com\\.cn/item/[\\d]+\\.html": "pchouse",
						"^(?:http|https)://buy\\.daphne\\.cn/goods\\.php": "daphne",
						"^(?:http|https)://www\\.lucemall\\.com\\.cn/.+/[\\d]+\\.html": "lucemall",
						"^(?:http|https)://www\\.lifevc\\.com/detail/": "lifevc",
						"^(?:http|https)://www\\.easy361\\.com/[^\\?]*goods-[\\d]+\\.html": "easy361",
						"^(?:http|https)://item\\.360hqb\\.com/spu\\-[\\d]+\\.html": "360hqb",
						"^(?:http|https)://item\\.360hqb\\.com/[\\d]+\\.html": "360hqb",
						"^(?:http|https)://q\\.360hqb\\.com/detail/[\\d\\_]+\\.html": "360hqb",
						"^(?:http|https)://www\\.goujiuwang\\.com/product/item\\-id\\-[\\d]+\\.htm": "goujiuwang",
						"^(?:http|https)://www\\.huimai365\\.com/goods\\-[\\d]+\\.html": "huimai365",
						"^(?:http|https)://(www|tuan|dingzhi)\\.jiuxian\\.com/(goods|tuan_detail)\\-.+\\.htm": "jiuxian",
						"^(?:http|https)://www\\.winenice\\.com/p_[\\d]+\\.shtml": "winenice",
						"^(?:http|https)://www\\.yesmywine\\.com/goods/[\\d]+\\.html": "yesmywine",
						"^(?:http|https)://mall\\.yesmywine\\.com/shop/junkang/item-[\\d]+": "yesmywine",
						"^(?:http|https)://mall\\.yesmywine\\.com/groupbuy/\\d+\\.html": "yesmywine",
						"^(?:http|https)://www\\.banggo\\.com/Goods/[\\d]+\\.shtml": "banggo",
						"^(?:http|https)://www\\.banggo\\.com/goods_[0-9]+\\.shtml": "banggo",
						"^(?:http|https)://ploy\\.banggo\\.com/second/[0-9-_]+\\.shtml": "banggo",
						"^(?:http|https)://www\\.yanyue\\.cn/smoke\\-product\\-[\\d]+\\.html": "yanyue",
						"^(?:http|https)://www\\.bearbuy\\.com\\.cn/goods\\.php\\?id=[\\d]+": "bearbuy",
						"^(?:http|https)://www\\.amazon\\.cn/.*?(?:dp/|gp/product/|detailApp)": "amazon",
						"^(?:http|https)://www\\.amazon\\.(?:com|co\\.uk|de|co\\.jp|fr|ca|cn|it|es)/.*?(?:dp/|gp/product/|gp/|detailApp)": "amazon",
						"^(?:http|https)://(?:product\\.dangdang\\.com/[^\\?]*product.aspx|reco\\.dangdang\\.com/reco_pub\\.php)\\?product_id=\\d+": "dangdang",
						"^(?:http|https)://product\\.dangdang\\.com/[\\d]+": "dangdang",
						"^(?:http|https)://z\\.jd\\.com/project/details/\\d+\\.html": "360buy",
						"^(?:http|https)://item\\.jd\\.com/\\d+\\.html": "360buy",
						"^(?:http|https)://item\\.jd\\.hk/\\d+\\.html": "360buy",
						"^(?:http|https)://paimai\\.jd\\.com/\\d+": "360buy-paimai",
						"^(?:http|https)://day\\.jd\\.com/item/.*\\.html": "360buy-day",
						"^(?:http|https)://www\\.(?:360buy|jd)\\.com/product/\\d+\\.html": "360buy",
						"^(?:http|https)://(?:book|e)\\.(?:360buy|jd)\\.com/\\d+\\.html": "360buy-book",
						"^(?:http|https)://re\\.jd\\.com/cps/item/[0-9]+\\.html": "360buy-re",
						"^(?:http|https)://auction\\.jd\\.com/[0-9]+": "360buy-auction",
						"^(?:http|https)://mvd\\.(?:360buy|jd)\\.com/\\d+\\.html": "360buy-mvd",
						"^(?:http|https)://tuan\\.(?:360buy|jd)\\.com/team\\-\\d+\\.html": "360buy-tuan",
						"^(?:http|https)://www\\.(?:360buy|jd)\\.com/tuan/[\\d]+\\-[\\d]+\\.html": "360buy-tuan",
						"^(?:http|https)://www\\.(?:360buy|jd)\\.com/bigimage\\.aspx\\?id=\\d+": "360buy-bigimage",
						"^(?:http|https)://club\\.jd\\.com/bbsDetail/[a-z0-9_-]+\\.html": "360buy-club",
						"^(?:http|https)://www\\.360top\\.com/product/\\d+\\.html": "360top",
						"^(?:http|https)://detail\\.zol\\.com\\.cn/.*?(?:index).*?\\.shtml": "zol",
						"^(?:http|https)://detail\\.zol\\.com\\.cn/[\\d]+/[\\d]+/[a-zA-Z]+\\.shtml": "zol",
						"^(?:http|https)://dealer\\.zol\\.com\\.cn/detail/[\\d]+/[\\d]+_[\\d]+.html": "zol",
						"^(?:http|https)://(?:www|mall)\\.zol\\.com/detail": "zol",
						"^(?:http|https)://detail\\.zol\\.com\\.cn/series/[0-9]+/[0-9_]+\\.html": "zol",
						"^(?:http|https)://www\\.fglady\\.cn/BMsgL": "fglady",
						"^(?:http|https)://(www.|)ouku\\.com/(?:goods|product)": "ouku",
						"^(?:http|https)://(www.|)ouku\\.com/cn/[0-9a-z-_]+\\.html": "ouku",
						"^(?:http|https)://www\\.newegg(\\.com)?\\.cn/Product/.*?\\.htm": "newegg",
						"^(?:http|https)://zhadan\\.newegg(\\.com)?\\.cn/Bomb-\\d+\\.htm": "newegg",
						"^(?:http|https)://zhadan\\.newegg\\.cn": "newegg-zhadan",
						"^(?:http|https)://tuan\\.newegg\\.cn/deal/[0-9]+\\.htm": "newegg-tuan",
						"^(?:http|https)://product\\.kimiss\\.com/product/": "kimiss",
						"^(?:http|https)://www\\.redbaby\\.com\\.cn/.*?/\\d{7}\\d+\\.html": "redbaby",
						"^(?:http|https)://product\\.m18\\.com/": "m18",
						"^(?:http|https)://list\\.m18\\.com/item/": "m18",
						"^(?:http|https)://list\\.m18\\.com/g/": "m18",
						"^(?:http|https)://list\\.m18\\.com/.*Goods.aspx": "m18",
						"^(?:http|https)://www\\.w1\\.cn/goods": "w1",
						"^(?:http|https)://www\\.ashford\\.com/us/watches/[a-z0-9-]+/[a-z0-9-]+": "ashford",
						"^(?:http|https)://www\\.sephora\\.cn/productDetailAction/": "sephoracps",
						"^(?:http|https)://www\\.sephora\\.cn/product/\\d+\\.html": "sephoracps",
						"^(?:http|https)://www\\.sephora\\.cn/tryout/\\d+\\.html": "sephoracps",
						"^(?:http|https)://www\\.lafaso\\.com/(?:product/|goods/product_detail)": "lafaso",
						"^(?:http|https)://www\\.s\\.cn/\\w{2,}\\-[A-Za-z0-9]+?[0-9]+?[A-Za-z0-9]+?[\\-_*\\.].*?html": "s",
						"^(?:http|https)://w?item\\.(?:51buy|yixun)\\.com/": "51buy",
						"^(?:http|https)://www\\.okbuy\\.com/.*?/detail-": "okbuy",
						"^(?:http|https)://www\\.okbuy\\.com/.*?-[\\d]+.html": "okbuy",
						"^(?:http|https)://(www\\.)?letao\\.com/[^\\?]*shoe\\-[^\\~]*$": "letao",
						"^(?:http|https)://www\\.buy007\\.com/.*?/.*?/[A-Za-z\\d\\_\\-]*?\\.html": "buy007",
						"^(?:http|https)://www\\.taoxie\\.com/commodity": "taoxie",
						"^(?:http|https)://ju\\.suning\\.com/product-[a-zA-Z0-9]+\\.htm": "suning-ju",
						"^(?:http|https)://[\\w]+\\.suning\\.(?:com|cn)/(emall/)?(vprd|Prod|prd|fsm|sngbv|sprd|snupgbpv|cprd)": "suning",
						"^(?:http|https)://item\\.suning\\.com/[0-9]+\\.html": "suning",
						"^(?:http|https)://item\\.suning\\.com/[0-9]+/[0-9]+\\.html": "suning",
						"^(?:http|https)://www\\.suning\\.(?:com|cn)/webapp/wcs/stores/servlet/(Prod|prd)": "suning",
						"^(?:http|https)://pai\\.suning\\.(?:com|cn)/shanpai/detail/": "suning-pai",
						"^(?:http|https)://pai\\.suning\\.(?:com|cn)/shanpai/[0-9]/detail/d/[0-9]+-[0-9]": "suning-pai",
						"^(?:http|https)://[\\w]+\\.suning\\.(?:com|cn)/emall/dgf": "suning-dgf",
						"^(?:http|https)://qiang\\.suning\\.com/rps-web/rp/showActivity_[\\d]+\\.htm": "suning-qiang",
						"^(?:http|https)://product\\.suning\\.com/\\d+": "suning",
						"^(?:http|https)://product\\.suning\\.com/detail[0-9_]+\\.html": "suning",
						"^(?:http|https)://www\\.suning\\.com/detail/": "suning-book-new",
						"^(?:http|https)://snbook\\.suning\\.(?:com|cn)/web/prd/": "suning-snbook",
						"^(?:http|https)://www\\.coo8\\.com/product/": "coo8",
						"^(?:http|https)://(www.|)lusen\\.com/product/productinfo": "lusen",
						"^(?:http|https)://www\\.lusen\\.com/Tuan/ComityInfo\\.aspx\\?id=[0-9]+": "lusen",
						"^(?:http|https)://item\\.gome\\.com\\.cn/[^\\?]": "gome",
						"^(?:http|https)://tao\\.gome\\.com\\.cn/p\\-D[0-9]+": "gome-tao",
						"^(?:http|https)://q\\.gome\\.com\\.cn/item/\\w[0-9]+\\.html": "gome-q",
						"^(?:http|https)://tuan\\.gome\\.com\\.cn/deal/\\w+\\.html": "gome-tuan",
						"^(?:http|https)://www\\.gomehome\\.com/product/productinfo\\?p=[0-9-]+": "gome-home",
						"^(?:http|https)://www\\.gome\\.com\\.cn/ec/rushbuy/limitbuy/itemdetail": "gome-rushbuy",
						"^(?:http|https)://(?:www|item|s)\\.(yhd|yihaodian|1mall)\\.com/(?:product|item)/\\d+": "yihaodian",
						"^(?:http|https)://item\\.yhd\\.com/item/lp/[0-9_]+": "yihaodian",
						"^(?:http|https)://try\\.yhd\\.com/(free|fee)/\\d{4,6}_\\d+/": "yihaodian",
						"^(?:http|https)://t\\.(yhd|yihaodian|1mall)\\.com/detail/\\d+": "yihaodian-tuan",
						"^(?:http|https)://[a-zA-Z]+\\.womai\\.com/(.*)Product(?:\\-|\\.do\\?m?id)": "womai",
						"^(?:http|https)://(www|sh|gz|zs)\\.womai\\.com/related-": "womai-related",
						"^(?:http|https)://(www\\.)?leyou\\.com\\.cn/product/single/": "leyou",
						"^(?:http|https)://haitao\\.leyou\\.com\\.cn/item/single/sku/": "leyou",
						"^(?:http|https)://leleshan\\.leyou\\.com\\.cn/product/single/[A-Z0-9]+": "leyou-leleshan",
						"^(?:http|https)://www\\.shopin\\.net/product/": "shopin",
						"^(?:http|https)://(?:item|www|ebay)\\.xiu\\.com/product/": "xiu",
						"^(?:http|https)://outlets\\.xiu\\.com/[\\d]+\\.shtml": "xiu",
						"^(?:http|https)://ferragamo\\.xiu\\.com/[\\d]{6,10}\\.shtml": "xiu",
						"^(?:http|https)://tuan\\.xiu\\.com/team_[\\d]+": "xiu-tuan",
						"^(?:http|https)://item\\.mbaobao\\.com/pshow": "mbaobao",
						"^(?:http|https)://www\\.mbaobao\\.com/item/": "mbaobao",
						"^(?:http|https)://item\\.vjia\\.com/[\\d]*?\\.html": "vjia",
						"^(?:http|https)://www\\.7cv\\.com/product/": "7cv",
						"^(?:http|https)://www\\.qinqinbaby\\.com/product/": "qinqinbaby",
						"^(?:http|https)://www\\.qinqinbaby\\.com/goods/[0-9]+": "qinqinbaby",
						"^(?:http|https)://www\\.chunshuitang\\.com/[a-z]+/[0-9]+\\.html": "chunshuitang",
						"^(?:http|https)://www\\.x\\.com\\.cn/n_product/[\\w]+\\.shtml": "x",
						"^(?:http|https)://www\\.x\\.com\\.cn/product": "x",
						"^(?:http|https)://www\\.guopi\\.com/p\\.jsp": "guopi",
						"^(?:http|https)://www\\.no5\\.com\\.cn/goods/": "no5",
						"^(?:http|https)://www\\.no5\\.com\\.cn/product/[0-9]+\\.html": "no5",
						"^(?:http|https)://web[\\d]+\\.sasa\\.com/SasaWeb/sch/product/viewProductDetail": "sasa",
						"^(?:http|https)://www\\.sasa\\.com/[a-z]+/[a-zA-Z_-]+\\.shtml": "sasa",
						"^(?:http|https)://www\\.sasa\\.com/[a-z0-9-]+\\.html": "sasa",
						"^(?:http|https)://www\\.dhc\\.net\\.cn/gds/(?:detail|csearch\\.jsp\\?ccd=[\\d]+)": "dhc",
						"^(?:http|https)://www\\.9dadao\\.com/product/": "9dadao",
						"^(?:http|https)://www\\.360kxr\\.com/product/": "360kxr",
						"^(?:http|https)://www\\.m6go\\.com/product": "m6go",
						"^(?:http|https)://www\\.gou\\.com/product": "m6go",
						"^(?:http|https)://www\\.m6go\\.com/qg/product": "m6go",
						"^(?:http|https)://www\\.gou\\.com/qg/product": "m6go",
						"^(?:http|https)://www\\.likeface\\.com/product": "likeface",
						"^(?:http|https)://www\\.qxian\\.com/.*?[0-9]*?\\.html": "qxian",
						"^(?:http|https)://www\\.didamall\\.com/(?:products|libao)/info/": "didamall",
						"^(?:http|https)://www\\.yaodian100\\.com/ecmall/product": "yaodian100",
						"^(?:http|https)://www\\.yaofang\\.cn/goods": "yaofang",
						"^(?:http|https)://www\\.lijiababy\\.com\\.cn/(?:eshop/product|Clothing/.*?/Product_item\\.aspx)": "lijiababy",
						"99read\\.com/Product/[a-zA-Z]*\\d+[a-zA-Z]*\\.aspx": "99read",
						"^(?:http|https)://product\\.china-pub\\.com": "china-pub",
						"^(?:http|https)://(www.|)bookschina\\.com/[\\d]+\\.htm": "bookschina",
						"^(?:http|https)://(www.|)bookschina\\.com/GROUPBUY/groupbuy.aspx\\?groupid\\=[0-9]+": "bookschina-tuan",
						"^(?:http|https)://www\\.efeihu\\.com/(?:Product/|Pages/ProductShow/ProductDetails\\.aspx)": "efeihu",
						"^(?:http|https)://tuan\\.efeihu\\.com/[0-9a-zA-Z]+/Detials.aspx\\?id=[0-9]+": "efeihu",
						"^(?:http|https)://www\\.360mart\\.com/product[s]?/.*?\\.html": "360mart",
						"^(?:http|https)://www\\.yintai\\.com/product/productdetail": "yintai",
						"^(?:http|https)://item\\.yintai\\.com/": "yintai",
						"^(?:http|https)://www\\.quwan\\.com/goods": "quwan",
						"^(?:http|https)://www\\.urcosme\\.com/search/final": "urcosme",
						"^(?:http|https)://cn\\d*\\.strawberrynet\\.com/.*?/[0-9]+/": "strawberrynet",
						"^(?:http|https)://www\\.luce\\.com\\.cn/product/": "luce",
						"^(?:http|https)://www\\.k121\\.com/item": "k121",
						"^(?:http|https)://www\\.happigo\\.com/[\\w]+/[\\w]+/[\\w]+/[\\d]+\\.html": "happigo",
						"^(?:http|https)://mall\\.happigo\\.com/goods-[\\d]+\\.html": "happigo",
						"^(?:http|https)://mall\\.happigo\\.com/groupbuy-[0-9-]+\\.html": "happigo",
						"^(?:http|https)://www\\.gap\\.cn/[^\\?]*product/[\\d]+\\.html": "gap",
						"^(?:http|https)://www\\.misslele\\.com/.+[\\d]+\\.html": "misslele",
						"^(?:http|https)://www\\.5lux\\.com/goods": "5lux",
						"^(?:http|https)://(?:www|hui)\\.5lux.com/good/detail/[0-9]+": "5lux",
						"^(?:http|https)://www\\.xiaozhuren\\.com/(Disney/)?goods\\.php": "xiaozhuren",
						"^(?:http|https)://www\\.all3c\\.com/product/": "all3c",
						"^(?:http|https)://www\\.idaphne\\.com/goods": "idaphne",
						"^(?:http|https)://product\\.pcbaby\\.com\\.cn/a/": "pcbaby",
						"^(?:http|https)://www\\.binggo\\.com/.*?/\\d{7}\\d+\\.html": "binggo",
						"^(?:http|https)://www\\.tiantian\\.com/.+/[a-zA-Z]?[\\d]+\\.html": "tiantian",
						"^(?:http|https)://tuan\\.tiantian\\.com/Sale/(?:Details|FlashDetails)/[a-zA-Z0-9]+": "tiantian-tuan",
						"^(?:http|https)://www\\.xiji\\.com/product-[0-9]+\\.html": "xiji",
						"^(?:http|https)://www\\.xijie\\.com/prod": "xijie",
						"^(?:http|https)://mall\\.jumei\\.com[^\\?]*/product_": "jumei",
						"^(?:http|https)://pop\\.jumei\\.com/i/deal/\\w+\\.html": "jumei",
						"^(?:http|https)://(gz|bj|sh)\\.jumei\\.com/i/deal/\\w+\\.html": "jumei",
						"^(?:http|https)://item\\.jumei\\.com/[0-9a-zA-Z]+\\.html": "jumei",
						"^(?:http|https)://www\\.jumeiglobal\\.com/deal/\\w+\\.html": "jumeiglobal",
						"^(?:http|https)://item\\.jumeiglobal\\.com/[0-9a-zA-Z]+\\.html": "jumeiglobal",
						"^(?:http|https)://buy\\.caomeipai\\.com/goods": "caomeipai",
						"^(?:http|https)://www\\.dahuozhan\\.com/product/": "dahuozhan",
						"^(?:http|https)://www\\.dazhe\\.cn/goodsdetail": "dazhe",
						"^(?:http|https)://www\\.huolida\\.com/product/": "huolida",
						"^(?:http|https)://www\\.12dian\\.com/product": "12dian",
						"^(?:http|https)://www\\.yougou\\.com/c_": "yougou",
						"^(?:http|https)://(?:outlets|www)\\.yougou\\.com/[^?]+sku-[\\w]+": "yougou",
						"^(?:http|https)://(?:outlets|seoul|www)\\.yougou\\.com/[a-z-]+/sku-[a-z0-9-]+\\.shtml": "yougou",
						"^(?:http|https)://www\\.111\\.com\\.cn/(?:product|item)/": "111",
						"^(?:http|https)://www\\.daoyao\\.com/product": "daoyao",
						"^(?:http|https)://www\\.jianke\\.com/product/": "jianke",
						"^(?:http|https)://www\\.jianke\\.com/tuan/product/[0-9]+\\.html": "jianke",
						"^(?:http|https)://www\\.360kad\\.com/product/[0-9a-z]+\\.shtml": "360kad",
						"^(?:http|https)://www\\.lbxcn.com/(?:Product|item)/[0-9]+.html": "lbxcn",
						"^(?:http|https)://book\\.douban\\.com/subject/[\\d]+": "douban",
						"^(?:http|https)://dongxi\\.douban\\.com/show/[\\d]+": "douban-dongxi",
						"^(?:http|https)://product\\.it168\\.com/detail/doc/[0-9]+/index\\.shtml": "it168",
						"^(?:http|https)://product\\.pconline\\.com\\.cn/[^/]*?/[^/]*?/[0-9]+\\.html": "pconline",
						"^(?:http|https)://product\\.pcpop\\.com/[0-9]+/Index\\.html": "pcpop",
						"^(?:http|https)://cosme\\.pclady\\.com\\.cn/product/[0-9]+\\.html": "pclady",
						"^(?:http|https)://brand\\.yoka\\.com/cosmetics/.*?/detail[0-9]+\\.htm": "yoka",
						"^(?:http|https)://detail\\.55bbs\\.com/.*?/index[0-9]+\\.shtml": "55bbs",
						"^(?:http|https)://hzp\\.onlylady.com/.*?/[0-9]+/": "onlylady",
						"^(?:http|https)://www\\.24dq.com/product.*?html": "24dq",
						"^(?:http|https)://www\\.muyingzhijia\\.com/Shopping/ProductDetail\\.aspx": "muyingzhijia",
						"^(?:http|https)://www\\.muyingzhijia\\.com/product/\\d+\\.html": "muyingzhijia",
						"^(?:http|https)://item\\.muyingzhijia\\.com/\\d+\\.html": "muyingzhijia",
						"^(?:http|https)://www\\.houmart\\.com/p\\-[\\d]+\\.html": "houmart",
						"^(?:http|https)://www\\.onlyts\\.cn/goods": "onlyts",
						"^(?:http|https)://www\\.winxuan\\.com/product/.*?[0-9]*?": "winxuan",
						"^(?:http|https)://item\\.winxuan\\.com/[0-9]+": "winxuan",
						"^(?:http|https)://detail\\.bookuu\\.com/[0-9]*?\\.html": "bookuu",
						"^(?:http|https)://e\\.bookuu\\.com/detail\\.php\\?id=\\d+": "bookuu",
						"^(?:http|https)://wenju\\.bookuu\\.com/detail\\.php\\?id=\\d+": "bookuu",
						"^(?:http|https)://book\\.beifabook\\.com/Product/BookDetail.aspx": "beifabook",
						"^(?:http|https)://product\\.yesky\\.com/product/.*?[0-9]*?/": "yesky",
						"^(?:http|https)://product\\.pchome\\.net/.*?[0-9]*?\\.html": "pchome",
						"^(?:http|https)://product\\.enet\\.com\\.cn/[a-zA-Z\\-].*?[\\d].*?\\.html": "enet",
						"^(?:http|https)://(www\\.)?(?:ruiyi|rayi)\\.(?:com|cn|com\\.cn)/\\?product-[\\d].*?\\.html": "ruiyi",
						"^(?:http|https)://www\\.nop\\.cn/product-[\\d]*?\\.html": "nop",
						"^(?:http|https)://product\\.imobile\\.com\\.cn/show/[\\d].*?\\.html": "imobile",
						"^(?:http|https)://product\\.cnmo\\.com/cell_phone/index[\\d].*?\\.shtml": "cnmo",
						"^(?:http|https)://phone\\.shouji\\.com\\.cn/[\\d]+/detail/[\\d]+": "shouji",
						"^(?:http|https)://product\\.tompda\\.com/[a-zA-Z]/[a-zA-Z]/[\\d]+/[\\d]+": "tompda",
						"^(?:http|https)://www\\.3533\\.com/phone/phone.+\\.htm": "phone3533",
						"^(?:http|https)://product\\.intozgc\\.com/[a-zA-Z\\_]+\\_[\\d]+": "intozgc",
						"^(?:http|https)://product\\.chinabyte\\.com/product/[\\d]+/[\\d]+": "chinabyte",
						"^(?:http|https)://app\\.tech\\.ifeng\\.com/[a-zA-Z\\-\\_]+/[a-zA-Z\\-\\_]+/[a-zA-Z0-9\\-\\_]+": "ifeng",
						"^(?:http|https)://app\\.tech\\.ifeng\\.com/[a-zA-Z\\-\\_]+/detail\\-index\\-[0-9]+\\.html": "ifeng",
						"^(?:http|https)://www2\\.xitek\\.com/production/product.php": "xitek",
						"^(?:http|https)://product\\.imp3\\.net/product\\.php": "imp3",
						"^(?:http|https)://www\\.menglu\\.com/product/[\\d]+\\.html": "menglu",
						"^(?:http|https)://(?:lady|lingerie|www|fashion|shipin|item)\\.moonbasa\\.com/[a-zA-Z]\\-[\\d]+\\.html": "moonbasa",
						"^(?:http|https)://www\\.(?:ing2ing|qjherb|korirl|alaves|0-100s|cherriespie|clafield|baoyeah|suorang|monteamor|rutisher)\\.com/p\\-[\\d]+\\.html": "moonbasa",
						"^(?:http|https)://www\\.keede\\.com(\\.cn)?/[a-zA-Z]+[\\d]+\\.html": "keede",
						"^(?:http|https)://item(\\.vt)?\\.vancl\\.com/[\\d]+\\.html": "vancl",
						"^(?:http|https)://www\\.dazhongdianqi\\.com\\.cn/dazhong/product[\\-\\d]+\\.htm": "dazhongdianqi",
						"^(?:http|https)://www\\.skinstorechina\\.com/.+/.+[\\d]+\\-p\\.html": "skinstorechina",
						"^(?:http|https)://item\\.buy\\.qq\\.com/item/": "qq",
						"^(?:http|https)://.*\\.zol\\.com\\.cn/\\d+/\\d+\\.html": "zol-article",
						"^(?:http|https)://.*\\.pconline\\.com\\.cn/\\d+/\\d+\\.html": "pconline-article",
						"^(?:http|https)://.*\\.yesky\\.com/\\d+/\\d+\\.shtml": "yesky-article",
						"^(?:http|https)://.*\\.it168\\.com/[a-z]\\d+/\\d+/\\d+/\\d+\\.shtml": "it168-article",
						"^(?:http|https)://.*\\.pcpop\\.com/doc/\\d+/\\d+/\\d+\\.shtml": "pcpop-article",
						"^(?:http|https)://.*\\.pchome\\.net/content-\\d+\\.html": "pchome-article",
						"^(?:http|https)://.*\\.139shop\\.com/.*?/\\d+/\\d+\\.htm": "139shop-article",
						"^(?:http|https)://www\\.milier\\.com/product/": "milier",
						"^(?:http|https)://www\\.sportica\\.cn/goods": "sportica",
						"^(?:http|https)://www\\.zhenpin\\.com/product": "zhenpin",
						"^(?:http|https)://www\\.gaojie\\.com/product/": "gaojie",
						"^(?:http|https)://www\\.naruko\\.com\\.cn/shop/product/Goods\\.aspx": "naruko",
						"^(?:http|https)://www\\.(?:vivian|masamaso|linkmasa)\\.(?:com|cn)/goods_": "masamaso",
						"^(?:http|https)://item\\.secoo\\.com/": "secoo",
						"^(?:http|https)://paimai\\.secoo\\.com/[0-9]+\\.shtml": "secoo",
						"^(?:http|https)://sale\\.secoo\\.com/[0-9]+\\.shtml": "secoo",
						"^(?:http|https)://(?:www|tuan)\\.ehaier\\.com/product/": "ehaier",
						"^(?:http|https)://qiji\\.ehaier\\.com/new/newExploreManager/dateil/[0-9]+": "ehaier",
						"^(?:http|https)://www\\.handuyishe\\.com/goods": "handuyishe",
						"^(?:http|https)://www\\.wbiao\\.cn/[a-z0-9-]+\\.html": "wbiao",
						"^(?:http|https)://www\\.wbiao\\.cn/goods\\.php\\?goods_id=[0-9]+": "wbiao",
						"^(?:http|https)://www\\.wbiao\\.cn/van-der-bauwede-\\w[0-9]+\\.html": "wbiao",
						"^(?:http|https)://www\\.shangpin\\.com/.*?product/": "shangpin",
						"^(?:http|https)://www\\.pba\\.cn/product": "pba",
						"^(?:http|https)://www\\.metromall\\.com\\.cn/products/": "metromall",
						"^(?:http|https)://www\\.lizi\\.com/product": "lizi",
						"^(?:http|https)://www\\.kadang\\.com/[a-zA-Z0-9/]*detail\\d+": "kadang",
						"^(?:http|https)://www\\.kadang\\.com/product/[0-9]+": "kadang",
						"^(?:http|https)://www\\.aimer\\.com\\.cn/goods/": "aimer",
						"^(?:http|https)://www\\.lamiu\\.com/goods_": "lamiu",
						"^(?:http|https)://www\\.lamiu\\.com/(?:goods_|product-)": "lamiu",
						"^(?:http|https)://www\\.esprit\\.cn/(?:product|item)/": "esprit",
						"^(?:http|https)://www\\.liebo\\.com/product/": "liebo",
						"^(?:http|https)://www\\.wangjiu\\.com/product/(?!flashPromotion)": "wangjiu",
						"^(?:http|https)://www\\.xifuquan\\.com/product/": "xifuquan",
						"^(?:http|https)://www\\.189\\.cn/products/": "189",
						"^(?:http|https)://www\\.hicdma\\.com/product_detail_": "hicdma",
						"^(?:http|https)://mall\\.10010\\.com/goodsdetail/": "10010",
						"^(?:http|https)://www\\.e100\\.cn/ebiz/channel/(.*/)+\\d+\\.html": "e100",
						"^(?:http|https)://store\\.samsung\\.com/cn/.*/p/.*": "samsung",
						"^(?:http|https)://store\\.meizu\\.com/product/": "meizu",
						"^(?:http|https)://b2c\\.958shop\\.com/.*/\\d+\\.html": "958shop",
						"^(?:http|https)://www\\.okhqb\\.com/item/\\d+\\.html": "okhqb",
						"^(?:http|https)://www\\.okhqb\\.com/qiang/\\d+/\\d+\\.html": "okhqb",
						"^(?:http|https)://www\\.ztedevice\\.com\\.cn/product/": "ztedevice",
						"^(?:http|https)://www\\.daling\\.com/detail-[0-9]+\\.html": "daling",
						"^(?:http|https)://item\\.showjoy\\.com/sku/[0-9]+\\.html": "showjoy",
						"^(?:http|https)://www\\.ocj\\.com\\.cn/detail/[0-9]+": "ocj",
						"^(?:http|https)://www\\.ocj\\.kr/detail/[0-9]+": "ocj-kr",
						"^(?:http|https)://www\\.ocj\\.com\\.cn/otuans/[a-z]+/[0-9]+": "ocj-tuan",
						"^http://www\\.lvyoumall\\.com/(tuan/goods-|tmh/goods-|goods/)\\d+": "lvyoumall",
						"http://www\\.kjt\\.com/product/detail/\\d+": "kjt",
						"http://store\\.logitech\\.com\\.cn/pro/proDetail/\\d+": "logitech",
						"http://shop\\.boohee\\.com/store/goods/\\w+": "boohee",
						"http://www\\.meici\\.com/product-[a-zA-Z0-9-]+\\.html": "meici",
						"http://www\\.meici\\.com/product.*": "meici",
						"http://(?:global|you|www)\\.beibei\\.com/detail/[0-9-]+\\.html": "beibei",
						"http://store\\.nike\\.com/cn/zh_cn/pd/[a-zA-Z0-9\\u4e00-\\u9fa5-]+": "nike",
						"http://store\\.nike\\.com/cn/zh_cn/product/[a-zA-Z0-9\\u4e00-\\u9fa5-]+": "nike",
						"//www\\.fengqu\\.com/detail/": "fengqu",
						"//www\\.mei\\.com/silo/.*-event-event/.*\\.html": "mei",
						"//www\\.vsigo\\.cn/.*\\.html": "vsigo",
						"^(?:http|https)://www\\.sundan\\.com/product-[0-9]+": "sundan"
					};
				return e.getPageInfo = function() {
					if (t) return t;
					var e = "";
					return this.isInBanList() ? t = {
						type: 0,
						siteName: e
					} : (e = this.isProductPage()) ? (a.site = e, t = {
						type: 2,
						siteName: e
					}) : (e = this.isAvailablePage(), e ? (a.site = e, t = {
						type: 1,
						siteName: e
					}) : t = {
						type: 0,
						siteName: ""
					})
				}, e
			}.call(e, n, e, t), !(void 0 !== i && (t.exports = i))
		}).call(e, n(1))
	},
	function(t, e, n) {
		(function(e, i) {
			"use strict";

			function a() {
				e.IE6 || e.IE7 || e.IE8 || e.IE9 || o() && (f(), g(), 0 != i("#gwd_ht_main").length && (C(), T(), E(), S(ft.shangyi[pt].man[0], ft.shangyi[pt].man[1]), q(), O(), p(), J(), c(), b(), k()))
			}

			function o() {
				var t = location.host;
				for (var e in wt)
					if (t == e) return !0;
				return !1
			}

			function r(t) {
				i(".ht_tariff_btn span").text(t.slice(0, 5)), i(".ht_tariff_btn span").attr("title", t), i("#cate_small").val(t), W("#cate_small");
				for (var e in ht)
					for (var n = ht[e].length, a = 0; n > a; a++)
						if (ht[e][a][1] == t) {
							var o = i('#big_xiala a[cate="' + e + '"]').text();
							i("#cate_big").val(o), W("#cate_big"), B(ht[e]), i(".ht_tariff .ht_tariff_num").text(ht[e][a][0])
						}
			}

			function s(t) {
				var e = vt[t].tle,
					n = vt[t].cate;
				i(".ht_tariff_btn span").text(e.slice(0, 5)), i(".ht_tariff_btn span").attr("title", e), i("#cate_big").val(e), W("#cate_big"), i("#cate_small").val(ht[n][ht[n].length - 1][1]), W("#cate_small"), B(ht[n]), i(".ht_tariff .ht_tariff_num").text(ht[n][ht[n].length - 1][0])
			}

			function l(t) {
				for (var e in _t)
					if (t.indexOf(e) > -1) return _t[e];
				for (var e in vt)
					if (t.indexOf(e) > -1) return void s(e);
				return !1
			}

			function d(t, e) {
				switch (t) {
					case "男装":
						return ft.shangyi[e].man;
					case "女装":
						return ft.shangyi[e].woman;
					case "童装":
						return ft.kidscloth[e];
					case "男鞋":
						return ft.shoes.man;
					case "女鞋":
						return ft.shoes.woman;
					case "童鞋":
						return ft.shoes.kids
				}
			}

			function c() {
				for (var t = 0; t < bt.length; t++)
					for (var e = bt[t], n = i(e).length, a = n - 1; a >= 0; a--) {
						var o = i(e).eq(a).text().toLowerCase(),
							s = l(o);
						if (s) return void r(s)
					}
			}

			function p() {
				if (-1 == navigator.userAgent.toLowerCase().indexOf("chrome") && (i("#gwd_ht_main").addClass("ie_hack"), i("#transport_detail").addClass("ie_hack"), i("#size_detail").addClass("ie_hack")), "www.6pm.com" == tt) {
					var t = i("#gwd_ht_main").parent().outerWidth(),
						e = t - 355;
					i("#gwd_ht_main").css("margin-left", e / 2 + "px")
				}
				var n = i("#gwd_ht_main").offset().left + 500;
				n > i(window).width() && (i(".pro_type_detail").css({
					top: "40px",
					left: "238px"
				}), i(".mail_type_detail").css({
					top: "74px",
					left: "238px"
				}), i(".translate_detail").css({
					top: "108px",
					left: "238px"
				}))
			}

			function h() {
				return "www.6pm.com" == tt ? "ziying" : i("#merchant-info").length > 0 ? "www.amazon.com" == tt ? i("#merchant-info").text().indexOf("sold by Amazon") > -1 ? "ziying" : "sanfang" : "www.amazon.co.jp" == tt ? i("#merchant-info").text().indexOf("jp が販売") > -1 ? "ziying" : "sanfang" : "www.amazon.de" == tt ? i("#merchant-info").text().indexOf("Verkauf und Versand durch Amazon") > -1 ? "ziying" : "sanfang" : void 0 : "sanfang"
			}

			function u() {
				return "www.amazon.de" == tt ? i("#ddmShippingMessage").text().indexOf("Dieser Artikel kann nach") > -1 && i("#ddmInlineAddressInfo").text().indexOf("China") > -1 ? "zhiyou" : "feizhiyou" : i('.shipping-restrictions .label:contains("International")').length > 0 ? "zhiyou" : "feizhiyou"
			}

			function g() {
				n(20);
				var t, a, o = n(24),
					r = at.compile(o)({
						data: {
							pageclass: m(),
							getprice: y(),
							unit_price: x(),
							protype: h(),
							mailtype: u(),
							he_weight: v(),
							hosts: tt,
							site: "6pm" == e.site ? "6PM" : "亚马逊"
						}
					});
				a = wt[tt].dom;
				for (var s = 0; s < a.length; s++) i(a[s]).length > 0 && (t = a[s]);
				if (t) {
					switch (wt[tt].position) {
						case "before":
							i(t).before(r);
							break;
						case "after":
							i(t).after(r)
					}
					lt("track:haitao:main"), dt.log("显示海淘主界面")
				}
			}

			function m() {
				var t = "ht_" + tt.split(".")[1];
				return t
			}

			function f() {
				var t = location.host;
				for (var e in wt) e == t && (pt = wt[e].coun, tt = e)
			}

			function w(t) {
				var e = t.match(/[0-9]+(?:\.|\,)[0-9]+/);
				return e && (e = e[0]), "www.amazon.de" == tt && (e = e.toString().replace(",", ".")), e
			}

			function _(t) {
				switch (tt) {
					case "www.amazon.com":
						if (t.indexOf("pounds") > -1) return "pounds";
						if (t.indexOf("ounces") > -1) return "ounces";
						break;
					case "www.amazon.de":
						if (t.indexOf("Kg") > -1) return "kg";
						if (t.indexOf("g") > -1) return "g";
						break;
					case "www.amazon.co.jp":
						if (t.indexOf("Kg") > -1) return "kg";
						if (t.indexOf("g") > -1) return "g";
						break;
					case "www.6pm.com":
						if (t.indexOf("lb") > -1 && t.indexOf("oz") > -1) return "lb_oz";
						if (t.indexOf("lb") > -1) return "pounds";
						if (t.indexOf("oz") > -1) return "ounces"
				}
			}

			function v() {
				if (ct.weight) return ct.weight;
				for (var t = 0, e = xt[tt], n = e.length, a = 0; n > a; a++) {
					var o = i(e[a]).text();
					if ("" != o) {
						var r = _(o);
						if ("lb_oz" == r) {
							var s = o.match(/[0-9]+/g);
							return t = Math.round(100 * (gt.pounds / 453.6 * parseInt(s[0]) + gt.ounces / 453.6 * parseInt(s[1]))) / 100, ct.weight = t, t
						}
						if ("" != r) return t = Math.round(gt[r] / 453.6 * w(o) * 100) / 100, 0 === t || t || (t = 0), ct.weight = t, t
					}
				}
			}

			function b() {
				var t = v();
				if (t && 0 != t) {
					var e = j(t),
						n = i("#trans_list li .trans_com").eq(e.minindex).text();
					"" != n && 99999999 != e.minprice && (i(".ht_freight_num").text("¥" + e.minprice), i(".ht_transport_btn span").text(n))
				}
			}

			function x() {
				var t = ot.get().price;
				return t
			}

			function y(t) {
				var e = 0;
				e = t ? t : x();
				var n = i(".ht_freight_num").text().match(/[0-9.]+/);
				n && (n = n[0]);
				var a = i(".ht_tariff .ht_tariff_num").text().match(/[0-9.]+/);
				return a && (a = a[0]), i(".ht_tariff .ht_tariff_num") && "0" == i(".ht_tariff .ht_tariff_num").attr("data-price") && (a = 0), a || (a = 0), n || (n = 0), e = Number((Number(e) + Number(n) + Number(a)).toLocaleString().replace(/,/g, ""))
			}

			function k() {
				var t = "¥" + y();
				i(".ht_getprice_num").text(t)
			}

			function z() {
				var t = (i(window).width() - 595) / 2,
					e = (i(window).height() - 420) / 2 + i("body").scrollTop();
				return {
					posx: t,
					posy: e
				}
			}

			function C() {
				var t = n(25);
				i("body").append(at.compile(t)({
					pos: z()
				}))
			}

			function T() {
				var t = n(26);
				i("body").append(at.compile(t)({
					pos: z(),
					ht_weight: v()
				}))
			}

			function S(t, e) {
				var n = '<img src="https://s1.gwdang.com/images/extensions/{{imgurl}}">';
				i(".size_s").empty().append(at.compile(n)({
					imgurl: t
				})), i(".size_item_img").empty().append(at.compile(n)({
					imgurl: e
				}))
			}

			function j(t) {
				for (var e = 99999999, n = 0, a = i("#trans_list li .trans_pr"), o = i(a).length, r = 0; o > r; r++) {
					var s = Number(i(a).eq(r).attr("data-fp")),
						l = Number(i(a).eq(r).attr("data-fw")),
						d = Number(i(a).eq(r).attr("data-sw")),
						c = Number(i(a).eq(r).attr("data-sp")),
						p = P(t, [s, l, c, d]);
					parseInt(p) < e && (n = r, e = p), i(a).eq(r).text(p)
				}
				return {
					minindex: n,
					minprice: e
				}
			}

			function I() {
				var t = i(".first_xiala").val(),
					e = i(".second_xiala").val(),
					n = i("#first_size").val();
				n && (n = Number(n));
				var a = ut[t],
					o = ut[e],
					r = n * a / o;
				r.toString().indexOf(".") > -1 && (r = r.toFixed(2)), i("#second_size").val(r)
			}

			function P(t, e) {
				var n, i = e[0],
					a = e[1],
					o = e[2],
					r = e[3];
				if ("0" == i) n = (t / r * o).toFixed(2);
				else if (a >= t) n = i;
				else var n = (i + (t - a) / r * o).toFixed(2);
				return n
			}

			function A() {
				for (var t, e, n = Number(i(".ht_weight .ht_weight_num").val()) || 0, a = i(".ht_transport_btn span").attr("data-title"), o = mt[pt], r = 0; r < o.length; r++) o[r].shopname == a && (t = o[r].firstW, e = o[r].nextW);
				var s = "¥" + P(n, [t[1], t[0], e[1], e[0]]);
				i(".ht_freight_num").text(s)
			}

			function E() {
				var t = mt[pt],
					e = '{{each data}}<li class="{{if $index%2==1}}l_odd{{/if}}"><span class="trans_com">{{$value.shopname}}</span><span class="lo_center">{{$value.warehouse}}</span><span class="trans_cate">全部品类(禁运品除外)</span><span class="trans_pr" data-fw="{{$value.firstW[0]}}" data-sw="{{$value.nextW[0]}}" data-sp="{{$value.nextW[1]}}" data-fp="{{$value.firstW[1]}}">{{$value.firstW[1]==0?"无首重":$value.firstW[1]}}</span></li>{{/each}}';
				i("#trans_list").append(at.compile(e)({
					data: t
				}))
			}

			function L() {
				i(".trans_w input").on("keyup", function() {
					var t = Number(i(this).val());
					0 !== t && (t ? j(t) : alert("请输入数字！"))
				}), i("#trans_list li").on("click", function() {
					var t = i(this).find(".trans_com").text();
					i(".ht_transport_btn span").text(t.slice(0, 5)), i(".ht_transport_btn span").attr("data-title", t), A(), k(), i("#transport_detail").hide()
				})
			}

			function O() {
				i(".clothes_nav li").on("click", function() {
					i(".clothes_nav li").removeClass("select"), i(this).addClass("select");
					var t = i(this).text(),
						e = d(t, pt);
					t.indexOf("鞋") > -1 ? (i("#size_detail .shangyi").hide(), i("#size_detail .xiazhuang").hide(), i("#size_detail .tongzhuang").hide(), i("#size_detail .shoes").show(), i("#size_detail .shoes").css("display", "inline-block"), i(".cloth_icon").removeClass("ht_shangyi").removeClass("ht_xiazhuang").addClass("ht_shoes")) : t.indexOf("童装") > -1 ? (i("#size_detail .shangyi").hide(), i("#size_detail .xiazhuang").hide(), i("#size_detail .shoes").hide(), i("#size_detail .tongzhuang").show(), i("#size_detail .tongzhuang").css("display", "inline-block"), i(".cloth_icon").removeClass("ht_shoes").removeClass("ht_xiazhuang").addClass("ht_shangyi")) : (i("#size_detail .shangyi").show(), i("#size_detail .xiazhuang").show(), i("#size_detail .shoes").hide(), i("#size_detail .tongzhuang").hide(), i(".cloth_icon").removeClass("ht_shoes").removeClass("ht_xiazhuang").addClass("ht_shangyi"), i(".xiazhuang").removeClass("size_hover"), i(".shangyi").addClass("size_hover")), S(e[0], e[1])
				}), i(".shangyi").on("click", function() {
					if (!(i(this).attr("class").indexOf("size_hover") > -1)) {
						var t = i('.clothes_nav li[class="select"]').text();
						if ("童装" != t) {
							var e = d(t, pt);
							S(e[0], e[1]), i(this).addClass("size_hover"), i(".xiazhuang").removeClass("size_hover"), i(".cloth_icon").removeClass("ht_shoes").removeClass("ht_xiazhuang").addClass("ht_shangyi")
						}
					}
				}), i(".xiazhuang").on("click", function() {
					if (!(i(this).attr("class").indexOf("size_hover") > -1)) {
						var t = i('.clothes_nav li[class="select"]').text();
						if ("童装" != t) {
							if ("男装" == t) {
								var e = ft.xiazhuang[pt].man;
								S(e[0], e[1])
							}
							if ("女装" == t) {
								var e = ft.xiazhuang[pt].woman;
								S(e[0], e[1])
							}
							i(this).addClass("size_hover"), i(".shangyi").removeClass("size_hover"), i(".cloth_icon").removeClass("ht_shoes").removeClass("ht_shangyi").addClass("ht_xiazhuang")
						}
					}
				})
			}

			function N() {
				var t = e.collectInfo;
				if (e.dp = ot.get(!0), "" == t.dp_id) return i("#ht_addcollect").text("暂不支持"), void i("#ht_addcollect").unbind("click");
				i("#ht_addcollect").text("正在添加"), i("#ht_addcollect").addClass("c_adding"), "" != t.title && t.title || (t.title = e.dp.name || i("title").text()), "" != t.price && t.price || (t.price = e.dp.price);
				var n = e.c_server + "/collect/aj_add?dp_id= " + t.dp_id + "&url=" + encodeURIComponent(t.url || e.dp.url) + "&img=" + encodeURIComponent(t.img || e.dp.img) + "&title=" + encodeURIComponent(t.title) + "&price=" + t.price + "&site_id=" + t.site_id + "&cat_id=" + e.dp.cat_id;
				yt(n, function(t) {
					if (100 == t.code || t.code <= 0) {
						var n = window.location.href.toString();
						n += n.indexOf("?") > -1 ? "&gwd_add_favor_unique=true" : "?gwd_add_favor_unique=true", window.location.href = e.c_server + "/user/login?from_url=" + encodeURIComponent(n)
					} else 1 == t.code ? (i("#ht_addcollect").text("添加成功"), i("#ht_addcollect").removeClass("c_adding"), i("#ht_addcollect").addClass("c_added"), i("#ht_addcollect").unbind("click")) : 2 == t.code && (i("#ht_addcollect").text("添加过了"), i("#ht_addcollect").removeClass("c_adding"), i("#ht_addcollect").addClass("c_added"), i("#ht_addcollect").unbind("click"))
				})
			}

			function D() {
				i("#gwd_ht_main .ht_getprice").on("mouseenter", function() {
					i("#gwd_wishlist_trend_detail").hide(), i(".content_default").show(), i(this).addClass("item_hover"), i("#gwd_price_history_btn").removeClass("item_hover")
				}), i("#gwd_price_history_btn").on("mouseenter", function() {
					i(".content_default").hide(), i("#gwd_wishlist_trend_detail").show(), i(this).addClass("item_hover"), i("#gwd_ht_main .ht_getprice").removeClass("item_hover")
				}), i(".closebar").on("click", function() {
					i(this).parent().hide()
				}), i(".ht_translate").on("mouseenter", function() {
					i(".translate_detail").show()
				}), i(".ht_translate").on("mouseleave", function() {
					i(".translate_detail").hide()
				}), i(".pro_type").on("mouseenter", function() {
					i(".pro_type_detail").show()
				}).on("mouseleave", function() {
					i(".pro_type_detail").hide()
				}), i(".mail_type").on("mouseenter", function() {
					i(".mail_type_detail").show()
				}).on("mouseleave", function() {
					i(".mail_type_detail").hide()
				}), i("#ht_addcollect").on("click", function(t) {
					var n = i("#altImages li img").eq(0);
					n && (e.collectInfo.img = n.attr("src")), t.preventDefault(), N()
				}), i(".ht_weight .weight_type").on("click", function() {
					var t = i(this).text();
					"LB" === t ? (Q = i(".ht_weight_num").val(), i(this).text("KG"), i(".ht_weight_num").val(Math.round(.4535924 * Number(Q) * 100) / 100)) : (i(this).text("LB"), Q && i(".ht_weight_num").val(Q))
				}), i(".del_line").on("click", function() {
					"1" === i(this).attr("data-del") ? (i(this).css("text-decoration", "none"), i(this).attr("data-del", "0"), i(this).find("span").attr("data-price", i(this).find("span").text()), k()) : (i(this).css("text-decoration", "line-through"), i(this).attr("data-del", "1"), i(this).find("span").attr("data-price", 0), k())
				}), i(".ht_transport_btn").on("click", function() {
					i("#transport_detail").show(), lt("click:haitao:transport"), dt.log("海淘转运商家点击情况")
				}), i(".size_help").on("click", function() {
					i("#size_detail").show(), lt("click:haitao:size_help"), dt.log("点击尺码帮助")
				}), i(".size_xiala").on("mouseenter", function() {
					i(this).next(".size_xialabox").show()
				}), i(".size_xiala").on("mouseleave", function() {
					var t = this;
					Z = setTimeout(function() {
						i(t).next(".size_xialabox").hide()
					}, 100)
				}), i(".size_xialabox").on("mouseenter", function() {
					clearTimeout(Z)
				}), i(".size_xialabox").on("mouseleave", function() {
					i(this).hide()
				}), i(".size_xialabox a").on("click", function() {
					var t = i(this).text(),
						e = i(this).parent().attr("data-size");
					i("." + e).val(t), i(this).parent().hide(), I()
				}), i("#first_size").on("keyup", function() {
					I()
				})
			}

			function M() {
				for (var t = ["#variation_size_name", "#variation_configuration", "#variation_color_name", "#variation_style_name"], e = "", n = 0; n < t.length; n++) i(t[n]).length > 0 && i(t[n]).find("li").length > 0 && (e = t[n]);
				i(e).find("li").each(function() {
					i(this).on("click", function() {
						var t = i(this).find(".a-size-mini").eq(0).text();
						if ("" != t && t) {
							var e = rt(t);
							i(".ht_content .price_num").text("¥" + e), i(".ht_getprice_num").text("¥" + y(e))
						}
					})
				})
			}

			function q() {
				D(), F(), L(), M()
			}

			function B(t) {
				var e = '{{each data}}<a href="javascript:void(0);" title="{{$value[1]}}" tariff="{{$value[0]}}">{{$value[1]}}</a>{{/each}}';
				i("#cate_small").next(".xialabox").empty().append(at.compile(e)({
					data: t
				})), i("#cate_small").removeClass("sel_info"), R()
			}

			function R() {
				i("#small_xiala a").on("click", function() {
					i("#cate_small").val(i(this).text()), i(".ht_tariff_num").text(i(this).attr("tariff")), i(".ht_tariff_btn span").text(i(this).text().slice(0, 5)), i(".ht_tariff_btn span").attr("title", i(this).text()), i("#small_xiala").hide(), W("#cate_small")
				}), i("#select_btn").on("click", function() {
					k(), i("#tariff_detail").hide()
				})
			}

			function W(t) {
				for (var e = 0, n = i(t).val(), a = 0; a < n.length; a++) {
					var o = new RegExp("[a-z0-9/]").test(n[a]);
					if (e += o ? .5 : 1, e > 6) return n = n.slice(0, a) + "...", void i(t).val(n)
				}
			}

			function F() {
				i(".ht_tariff_btn").on("click", function() {
					i("#tariff_detail").show(), lt("click:haitao:tariff"), dt.log("海淘关税点击")
				}), i("#cate_select_box input").on("mouseenter", function() {
					i(this).next(".xialabox").find("a").length > 0 && (i(this).next(".xialabox").show(), i(this).addClass("input_hover"))
				}), i("#cate_select_box input").on("mouseleave", function() {
					var t = this;
					Z = setTimeout(function() {
						i(t).next(".xialabox").hide(), i(t).removeClass("input_hover")
					}, 100)
				}), i(".xialabox").on("mouseenter", function() {
					clearTimeout(Z)
				}).on("mouseleave", function() {
					i(this).hide(), i(this).parent().find("input").removeClass("input_hover")
				}), R(), i("#big_xiala a").on("click", function() {
					i("#cate_big").val(i(this).text());
					var t = i(this).attr("cate");
					B(ht[t]), i("#big_xiala").hide(), W("#cate_big")
				})
			}

			function H(t, e) {
				var n = "http://openapi.baidu.com/public/2.0/bmt/translate?client_id=P3sYyHNNlmDK2YLRECVQuihO&from=auto&to=auto&q=" + t;
				st.getPure(n).done(function(n) {
					if (n.trans_result && !n.error_code) {
						for (var i = [], a = 0; a < n.trans_result.length; a++) i.push(n.trans_result[a].dst);
						e(i)
					} else e([t])
				})
			}

			function $(t, e) {
				tt.indexOf("de") > -1 || tt.indexOf("jp") > -1 ? H(t, e) : X(t, e)
			}

			function X(t, e) {
				var n = "https://fanyi.youdao.com/openapi.do?keyfrom=chrome&key=1361128838&type=data&doctype=jsonp&version=1.1&q=" + t;
				st.getPure(n).done(function(n) {
					e(n.basic && n.basic.explains && n.basic.explains.length > 0 ? n.basic.explains : n.translation ? n.translation : [t])
				})
			}

			function U(t) {
				i(".ht_fanyi").remove();
				var e = '<div class="ht_fanyi" style="top:{{hty}};left:{{htx}}"><span id="ht_top"></span>{{each data}}<a>{{$value}}</a>{{/each}}</div>',
					n = at.compile(e)({
						data: t,
						htx: G() + "px",
						hty: nt + "px"
					});
				i("body").append(n), V()
			}

			function G() {
				var t = 0;
				return t = et > it ? et - (et - it) / 2 - 65 : et + (it - et) / 2 - 65
			}

			function Y(t) {
				$(t, U)
			}

			function V() {
				i(".ht_fanyi").siblings().on("click", function() {
					i(".ht_fanyi").remove()
				})
			}

			function J() {
				i("body").on("mousedown", function(t) {
					clearTimeout(K), it = t.pageX
				}), i("body").on("mouseup", function(t) {
					K = setTimeout(function() {
						var e = "";
						et = t.pageX, nt = t.pageY + 20, window.getSelection ? e = window.getSelection().toString() : document.selection && (e = document.selection.createRange().text), "" != e && Y(e)
					}, 100)
				})
			}
			var Z, K, Q, tt, et, nt, it, at = n(13),
				ot = n(14),
				rt = n(15),
				st = n(16),
				lt = n(17),
				dt = n(19),
				ct = {},
				pt = "us",
				ht = {
					cate1: [
						["免征", "咖啡"],
						["未知", "饮料/保健品/其他食品"],
						["免征", "茶叶"],
						["未知", "其他"]
					],
					cate2: [
						["¥60", "外衣/衣服/冲锋衣"],
						["免征", "外裤/裤子/衬衫/衬衣/T恤"],
						["未知", "内衣/内裤"],
						["免征", "配饰（帽子/围巾/头巾/丝巾/领带/腰带/手套）"],
						["¥80", "毛毯/被子/床罩/睡袋,皮大衣"],
						["¥200", "皮上衣"],
						["免征", "皮帽"],
						["免征", "皮背心/皮裤/皮裙,皮带/皮手套"],
						["未知", "其他"]
					],
					cate3: [
						["免征", "皮鞋"],
						["免征", "皮靴/靴子"],
						["免征", "运动鞋/徒步鞋/涉水鞋/登山鞋/远足鞋"],
						["免征", "箱/行李箱/旅行箱/手提箱"],
						["免征", "挎包/背包/邮差包/背包/单肩包/双肩包"],
						["免征", "钱包/钥匙包"],
						["未知", "其他"]
					],
					cate4: [
						["免征", "石英表（电子表）"],
						["¥100", "机械表"],
						["¥300", "高档手表（审定价格在10000元人民币及以上）"],
						["未知", "其他"]
					],
					cate5: [
						["免征", "餐具/刀具"],
						["免征", "炊具/锅"],
						["免征", "净水器（含滤芯）"],
						["免征", "净水器过滤芯"],
						["¥100", "微波炉"],
						["¥120", "电动榨汁机"],
						["免征", "咖啡机"],
						["¥800", "其他"]
					],
					cate6: [
						["免征", "吸尘器"],
						["免征", "电风扇"],
						["免征", "电熨斗"],
						["免征", "增/除湿机/増除湿一体机"],
						["¥100", "地板打蜡机"],
						["免征", "电动缝纫机"],
						["未知", "其他"]
					],
					cate7: [
						["免征", "电动剃须刀"],
						["免征", "红外线耳热探针/耳温枪"],
						["免征", "血压计/血糖计"],
						["免征", "电吹风机"],
						["免征", "电动牙刷"],
						["未知", "其他"]
					],
					cate8: [
						["¥75", "防晒露/防晒霜/防嗮乳液"],
						["免征", "护手霜"],
						["¥75", "洗面奶（洁面露）"],
						["免征", "香水"],
						["¥150", "精华液/精华素/肌底液"],
						["¥100", "爽肤水"],
						["¥150", "粉底/粉底液"],
						["免征", "睫毛膏/睫毛液"],
						["¥75", "其他"]
					],
					cate9: [
						["¥100", "键盘式手机"],
						["¥100", "触屏式手机"],
						["未知", "其他"]
					],
					cate10: [
						["¥300", "便携式复印件"],
						["未知", "其他"]
					],
					cate11: [
						["¥200", "数码相机/卡片机/DC"],
						["¥500", "数码照相机机身/单反机身/微单机身"],
						["¥400", "数码照相机镜头/单反镜头/微单镜头"],
						["免征", "便携式录摄一体机/家用摄像机/DV"],
						["免征", "支架"],
						["未知", "其他"]
					],
					cate12: [
						["免征", "游戏机遥控器/控制器/手柄/摇杆/方向盘"],
						["免征", "录音笔/录音机/收音机"],
						["免征", "MP3播放器"],
						["¥100", "电话机/座机/无绳话机"],
						["免征", "电子计算器"],
						["免征", "存储卡8GB及以下"],
						["免征", "其他"]
					],
					cate13: [
						["¥100", "便携式游戏机"],
						["免征", "游戏碟/游戏盘/游戏卡"],
						["未知", "其他"]
					],
					cate14: [
						["¥200", "音箱（音响设备）"],
						["未知", "其他"]
					],
					cate15: [
						["¥200", "笔记本电脑/含平板电脑"],
						["免征", "内存条4G以上"],
						["免征", "功能卡/显卡/声卡等"],
						["免征", "键盘"],
						["免征", "音箱（计算机外设）"],
						["免征", "投影仪"],
						["¥500", "存储器/移动硬盘1TB及以下"],
						["免征", "移动硬盘1TB-2TB(含2TB)"],
						["免征", "移动硬盘2TB以上"],
						["¥100", "其他存储器/固态硬盘/SSD"],
						["免征", "其他"]
					],
					cate16: [
						["¥80", "kindle/电纸书/电子书/e-ink"],
						["未知", "其他"]
					],
					cate17: [
						["未知", "玩具"],
						["未知", "其他"]
					],
					cate18: [
						["免征", "奶粉"],
						["免征", "童车"],
						["未知", "其他"]
					]
				},
				ut = {
					"米": 3e3,
					"厘米": 30,
					"毫米": 3,
					"英尺": 914.4,
					"英寸": 76.2,
					"码": 2743.2,
					"尺": 1e3,
					"寸": 100,
					"分": 10,
					"厘": 1
				},
				gt = {
					g: 1,
					kg: 1e3,
					ounces: 28.35,
					pounds: 453.6
				},
				mt = {
					us: [{
						shopname: "转运中国",
						warehouse: "美国俄勒冈仓免税州",
						firstW: [1.1, 49],
						nextW: [.22, 6.9]
					}, {
						shopname: "转运中国",
						warehouse: "新西兰奥克兰仓库",
						firstW: [1.1, 49],
						nextW: [.22, 4.9]
					}, {
						shopname: "海购丰运",
						warehouse: "US-美国特拉华州免税仓",
						firstW: [2.2, 80],
						nextW: [1.1, 40]
					}, {
						shopname: "海带宝",
						warehouse: "美国俄勒冈仓免税州",
						firstW: [1.1, 49],
						nextW: [.01, .07]
					}, {
						shopname: "转运邦",
						warehouse: "波兰免税仓库",
						firstW: [1.1, 49],
						nextW: [.22, 7]
					}, {
						shopname: "美西转运",
						warehouse: "美国俄勒冈仓免税州",
						firstW: [1.1, 38],
						nextW: [.22, 7]
					}, {
						shopname: "转运四方",
						warehouse: "美国俄勒冈仓免税州",
						firstW: [1.1, 95],
						nextW: [1.1, 21.85]
					}, {
						shopname: "宜送海淘",
						warehouse: "波兰免税仓库",
						firstW: [0, 0],
						nextW: [.22, 7]
					}, {
						shopname: "芒果速递",
						warehouse: "芝加哥物流中心",
						firstW: [1, 50.81],
						nextW: [1, 31.76]
					}, {
						shopname: "快鸟转运",
						warehouse: "美国俄勒冈仓免税州",
						firstW: [1, 31.76],
						nextW: [.1, 3.18]
					}, {
						shopname: "海淘1号仓",
						warehouse: "美国波特兰仓地址(免税州)",
						firstW: [1.1, 47],
						nextW: [.22, 7]
					}, {
						shopname: "笨鸟快递",
						warehouse: "美国俄勒冈仓免税州",
						firstW: [2.2, 70],
						nextW: [1.1, 35]
					}],
					jp: [{
						shopname: "乐一番",
						warehouse: "东京都仓库",
						firstW: [.66, 47.7],
						nextW: [.44, 7.42]
					}, {
						shopname: "海外购",
						warehouse: "东京都仓库",
						firstW: [.66, 52],
						nextW: [.44, 8]
					}, {
						shopname: "蚂蚁马",
						warehouse: "日本千叶仓库",
						firstW: [.66, 47.7],
						nextW: [.44, 7.42]
					}, {
						shopname: "Tenso",
						warehouse: "东京都仓库",
						firstW: [.66, 47.7],
						nextW: [.66, 21.2]
					}, {
						shopname: "海淘1号仓",
						warehouse: "日本仓库",
						firstW: [1.1, 42],
						nextW: [.22, 6]
					}, {
						shopname: "海购丰运",
						warehouse: "JP-日本东京仓",
						firstW: [2.2, 80],
						nextW: [1.1, 40]
					}, {
						shopname: "海带宝",
						warehouse: "日本大阪仓",
						firstW: [1.1, 43],
						nextW: [.01, .06]
					}, {
						shopname: "转运邦",
						warehouse: "日本大阪仓库",
						firstW: [1.1, 42],
						nextW: [.22, 6]
					}, {
						shopname: "转运四方",
						warehouse: "日本千叶仓库",
						firstW: [2.2, 90],
						nextW: [2.2, 30]
					}, {
						shopname: "宜送海淘",
						warehouse: "日本大阪仓库",
						firstW: [0, 0],
						nextW: [.22, 6]
					}, {
						shopname: "海购丰运",
						warehouse: "KR-韩国仁川仓",
						firstW: [2.2, 80],
						nextW: [1.1, 20]
					}],
					uk: [{
						shopname: "爱欧洲",
						warehouse: "德国仓库",
						firstW: [2.2, 195],
						nextW: [2.2, 15]
					}, {
						shopname: "欧洲GO",
						warehouse: "德国仓库",
						firstW: [2.2, 231],
						nextW: [2.2, 16]
					}, {
						shopname: "转运四方",
						warehouse: "德国法兰克福仓库",
						firstW: [1.1, 123.5],
						nextW: [1.1, 19]
					}, {
						shopname: "宜送海淘",
						warehouse: "德国黑森仓库（德中）",
						firstW: [2.2, 238],
						nextW: [2.2, 24]
					}, {
						shopname: "海淘1号仓",
						warehouse: "德国仓库",
						firstW: [2.2, 180],
						nextW: [2.2, 20]
					}]
				},
				ft = {
					shangyi: {
						us: {
							man: ["us_man_sz.jpg", "us_man_sz2.jpg"],
							woman: ["us_woman_sz.jpg", "us_woman_sz2.jpg"]
						},
						uk: {
							man: ["uk_man_sz.jpg", "uk_man_sz2.jpg"],
							woman: ["uk_woman_sz.jpg", "uk_woman_sz2.jpg"]
						},
						jp: {
							man: ["jp_man_sz.jpg", "jp_man_sz2.jpg"],
							woman: ["jp_woman_sz.jpg", "jp_woman_sz2.jpg"]
						}
					},
					xiazhuang: {
						us: {
							man: ["us_man_xz.jpg", "us_man_xz2.jpg"],
							woman: ["us_woman_xz.jpg", "us_woman_xz2.jpg"]
						},
						uk: {
							man: ["uk_man_xz.jpg", "uk_man_xz2.jpg"],
							woman: ["uk_woman_xz.jpg", "uk_woman_xz2.jpg"]
						},
						jp: {
							man: ["jp_man_xz.jpg", "jp_man_xz2.jpg"],
							woman: ["jp_woman_xz.jpg", "jp_woman_xz2.png"]
						}
					},
					kidscloth: {
						us: ["us_kids.jpg", "us_kids2.jpg"],
						uk: ["uk_kids.jpg", "uk_kids2.jpg"],
						jp: ["jp_kids.jpg", "jp_kids2.jpg"]
					},
					shoes: {
						man: ["man_shoes.jpg", "man_shoes2.jpg"],
						woman: ["woman_shoes.jpg", "woman_shoes2.jpg"],
						kids: ["kids_shoes.jpg", "kids_shoes2.jpg"]
					}
				},
				wt = {
					"www.amazon.com": {
						coun: "us",
						dom: ["#price_feature_div"],
						position: "after"
					},
					"www.amazon.co.jp": {
						coun: "jp",
						dom: ["#price_feature_div"],
						position: "after"
					},
					"www.amazon.de": {
						coun: "uk",
						dom: ["#price_feature_div"],
						position: "after"
					},
					"www.6pm.com": {
						coun: "us",
						dom: ["#productImages", "#prdImage"],
						position: "after"
					}
				},
				_t = {
					coffee: "咖啡",
					snack: "饮料/保健品/其他食品",
					nut: "饮料/保健品/其他食品",
					pistachio: "饮料/保健品/其他食品",
					almond: "饮料/保健品/其他食品",
					chestnuts: "饮料/保健品/其他食品",
					walnut: "饮料/保健品/其他食品",
					hazelnut: "饮料/保健品/其他食品",
					pecan: "饮料/保健品/其他食品",
					cashew: "饮料/保健品/其他食品",
					peanut: "饮料/保健品/其他食品",
					chocolates: "饮料/保健品/其他食品",
					pastry: "饮料/保健品/其他食品",
					candy: "饮料/保健品/其他食品",
					condiment: "饮料/保健品/其他食品",
					ketchup: "饮料/保健品/其他食品",
					beverage: "饮料/保健品/其他食品",
					tea: "茶叶",
					coats: "外衣/衣服/冲锋衣",
					clothes: "外衣/衣服/冲锋衣",
					shirt: "外裤/裤子/衬衫/衬衣/T恤",
					sweaters: "外裤/裤子/衬衫/衬衣/T恤",
					lingerie: "内衣/内裤",
					tankinis: "内衣/内裤",
					bikinis: "内衣/内裤",
					loungewear: "内衣/内裤",
					underwear: "内衣/内裤",
					briefs: "内衣/内裤",
					swimsuit: "内衣/内裤",
					scarves: "配饰（帽子/围巾/头巾/丝巾/领带/腰带/手套）",
					hats: "配饰（帽子/围巾/头巾/丝巾/领带/腰带/手套）",
					scarf: "配饰（帽子/围巾/头巾/丝巾/领带/腰带/手套）",
					tie: "配饰（帽子/围巾/头巾/丝巾/领带/腰带/手套）",
					belt: "配饰（帽子/围巾/头巾/丝巾/领带/腰带/手套）",
					gloves: "配饰（帽子/围巾/头巾/丝巾/领带/腰带/手套）",
					bedding: "毛毯/被子/床罩/睡袋",
					quilt: "毛毯/被子/床罩/睡袋",
					"bedspread ": "毛毯/被子/床罩/睡袋",
					leather: "皮鞋",
					boots: "皮靴/靴子",
					outdoor: "运动鞋/徒步鞋/涉水鞋/登山鞋/远足鞋",
					athletic: "运动鞋/徒步鞋/涉水鞋/登山鞋/远足鞋",
					sports: "运动鞋/徒步鞋/涉水鞋/登山鞋/远足鞋",
					wading: "运动鞋/徒步鞋/涉水鞋/登山鞋/远足鞋",
					climbing: "运动鞋/徒步鞋/涉水鞋/登山鞋/远足鞋",
					running: "运动鞋/徒步鞋/涉水鞋/登山鞋/远足鞋",
					sandals: "运动鞋/徒步鞋/涉水鞋/登山鞋/远足鞋",
					slippers: "运动鞋/徒步鞋/涉水鞋/登山鞋/远足鞋",
					insoles: "运动鞋/徒步鞋/涉水鞋/登山鞋/远足鞋",
					shoelaces: "运动鞋/徒步鞋/涉水鞋/登山鞋/远足鞋",
					suitcases: "箱/行李箱/旅行箱/手提箱",
					luggage: "箱/行李箱/旅行箱/手提箱",
					briefcases: "箱/行李箱/旅行箱/手提箱",
					travel: "箱/行李箱/旅行箱/手提箱",
					backpacks: "挎包/背包/邮差包/背包/单肩包/双肩包",
					satchel: "挎包/背包/邮差包/背包/单肩包/双肩包",
					bags: "挎包/背包/邮差包/背包/单肩包/双肩包",
					cases: "挎包/背包/邮差包/背包/单肩包/双肩包",
					handbags: "挎包/背包/邮差包/背包/单肩包/双肩包",
					clutches: "挎包/背包/邮差包/背包/单肩包/双肩包",
					wallet: "钱包/钥匙包",
					money: "钱包/钥匙包",
					key: "钱包/钥匙包",
					watches: "机械表",
					wrist: "机械表",
					dishwashers: "餐具/刀具",
					hoods: "餐具/刀具",
					drawers: "餐具/刀具",
					dath: "餐具/刀具",
					cutlery: "餐具/刀具",
					flatware: "餐具/刀具",
					"kitchen & dining": "餐具/刀具",
					dining: "餐具/刀具",
					knife: "餐具/刀具",
					pot: "炊具/锅",
					cookware: "炊具/锅",
					kitchenware: "炊具/锅",
					cooktops: "炊具/锅",
					purifier: "净水器（含滤芯）",
					steamers: "电饭煲",
					ovens: "微波炉",
					juicer: "电动榨汁机",
					coffeemachine: "咖啡机",
					vacuums: "吸尘器",
					"ceiling ": "电风扇",
					irons: "电熨斗",
					humidifiers: "增/除湿机/増除湿一体机",
					sewing: "电动缝纫机",
					refrigerators: "家电",
					freezers: "家电",
					compactors: "家电",
					washers: "家电",
					bulbs: "家电",
					shaver: "电动剃须刀",
					blood: "血压计/血糖计",
					glucose: "血压计/血糖计",
					dryer: "电吹风机",
					toothbrush: "电动牙刷",
					sunscreen: "防晒露/防晒霜/防嗮乳液",
					lotions: "防晒露/防晒霜/防嗮乳液",
					scream: "护手霜",
					lipstick: "唇膏",
					perfume: "香水",
					masks: "面膜",
					toner: "爽肤水",
					phones: "触屏式手机",
					cameras: "数码相机/卡片机/DC",
					canon: "数码相机/卡片机/DC",
					joystick: "游戏机遥控器/控制器/手柄/摇杆/方向盘",
					controller: "游戏机遥控器/控制器/手柄/摇杆/方向盘",
					recorder: "录音笔/录音机/收音机",
					radios: "录音笔/录音机/收音机",
					echo: "音箱（音响设备）",
					stereos: "音箱（音响设备）",
					laptop: "笔记本电脑/含平板电脑",
					memory: "内存条4G以上",
					cards: "功能卡/显卡/声卡等",
					card: "功能卡/显卡/声卡等",
					mice: "鼠标",
					keyboards: "键盘",
					input: "键盘",
					scanner: "投影仪",
					screens: "投影仪",
					disk: "移动硬盘1TB-2TB(含2TB)",
					toys: "玩具",
					"mp3 players": "MP3播放器",
					diapering: "婴儿用品"
				},
				vt = {
					food: {
						tle: "食品",
						cate: "cate1"
					},
					clothing: {
						tle: "服饰",
						cate: "cate2"
					},
					packs: {
						tle: "鞋、箱包",
						cate: "cate3"
					},
					shoes: {
						tle: "鞋、箱包",
						cate: "cate3"
					},
					bags: {
						tle: "鞋、箱包",
						cate: "cate3"
					},
					"kitchen & dining": {
						tle: "厨房、餐厅",
						cate: "cate4"
					},
					"home & kitchen": {
						tle: "家电",
						cate: "cate6"
					},
					"health & personal": {
						tle: "个人护理",
						cate: "cate7"
					},
					"beauty ": {
						tle: "美容",
						cate: "cate8"
					},
					"camera & photo ": {
						tle: "照相机、摄像机",
						cate: "cate11"
					},
					electronics: {
						tle: "电子数码",
						cate: "cate12"
					},
					cumputers: {
						tle: "个人电脑",
						cate: "cate15"
					},
					diapering: {
						tle: "婴儿用品",
						cate: "cate18"
					}
				},
				bt = ["#wayfinding-breadcrumbs_feature_div .a-list-item .a-link-normal", "#SalesRank .zg_hrsr_ladder a"],
				xt = {
					"www.amazon.com": ["#detailBullets_feature_div .a-list-item .a-text-bold:contains(Weight) + span", "#technical-details-table td:contains(Weight)+td", "#detail-bullets ul li:contains(Weight)"],
					"www.amazon.de": ["#detail_bullets_id ul li:contains(Produktgewicht)", "#prodDetails .shipping-weight .value"],
					"www.amazon.co.jp": ["#detail_bullets_id ul li:contains(発送重量)"],
					"www.6pm.com": ["#prdInfoText .measurements li:contains(Weight)"]
				},
				yt = function(t, e) {
					st.get(t).done(function(t) {
						e(t)
					}).fail(function() {
						i("#ht_addcollect").text("添加失败"), i("#ht_addcollect").removeClass("c_adding"), i("#ht_addcollect").addClass("c_added")
					})
				};
			t.exports._init = function() {
				e.on("pageType=2", function() {
					a()
				})
			}
		}).call(e, n(1), n(12))
	},
	function(t, e, n) {
		var i;
		! function(e, n) {
			"object" == typeof t && "object" == typeof t.exports ? t.exports = e.document ? n(e, !0) : function(t) {
				if (!t.document) throw new Error("jQuery requires a window with a document");
				return n(t)
			} : n(e)
		}("undefined" != typeof window ? window : this, function(a, o) {
			function r(t) {
				var e = "length" in t && t.length,
					n = lt.type(t);
				return "function" === n || lt.isWindow(t) ? !1 : 1 === t.nodeType && e ? !0 : "array" === n || 0 === e || "number" == typeof e && e > 0 && e - 1 in t
			}

			function s(t, e, n) {
				if (lt.isFunction(e)) return lt.grep(t, function(t, i) {
					return !!e.call(t, i, t) !== n
				});
				if (e.nodeType) return lt.grep(t, function(t) {
					return t === e !== n
				});
				if ("string" == typeof e) {
					if (ft.test(e)) return lt.filter(e, t, n);
					e = lt.filter(e, t)
				}
				return lt.grep(t, function(t) {
					return lt.inArray(t, e) >= 0 !== n
				})
			}

			function l(t, e) {
				do t = t[e]; while (t && 1 !== t.nodeType);
				return t
			}

			function d(t) {
				var e = zt[t] = {};
				return lt.each(t.match(kt) || [], function(t, n) {
					e[n] = !0
				}), e
			}

			function c() {
				_t.addEventListener ? (_t.removeEventListener("DOMContentLoaded", p, !1), a.removeEventListener("load", p, !1)) : (_t.detachEvent("onreadystatechange", p), a.detachEvent("onload", p))
			}

			function p() {
				(_t.addEventListener || "load" === event.type || "complete" === _t.readyState) && (c(), lt.ready())
			}

			function h(t, e, n) {
				if (void 0 === n && 1 === t.nodeType) {
					var i = "data-" + e.replace(It, "-$1").toLowerCase();
					if (n = t.getAttribute(i), "string" == typeof n) {
						try {
							n = "true" === n ? !0 : "false" === n ? !1 : "null" === n ? null : +n + "" === n ? +n : jt.test(n) ? lt.parseJSON(n) : n
						} catch (a) {}
						lt.data(t, e, n)
					} else n = void 0
				}
				return n
			}

			function u(t) {
				var e;
				for (e in t)
					if (("data" !== e || !lt.isEmptyObject(t[e])) && "toJSON" !== e) return !1;
				return !0
			}

			function g(t, e, n, i) {
				if (lt.acceptData(t)) {
					var a, o, r = lt.expando,
						s = t.nodeType,
						l = s ? lt.cache : t,
						d = s ? t[r] : t[r] && r;
					if (d && l[d] && (i || l[d].data) || void 0 !== n || "string" != typeof e) return d || (d = s ? t[r] = K.pop() || lt.guid++ : r), l[d] || (l[d] = s ? {} : {
						toJSON: lt.noop
					}), ("object" == typeof e || "function" == typeof e) && (i ? l[d] = lt.extend(l[d], e) : l[d].data = lt.extend(l[d].data, e)), o = l[d], i || (o.data || (o.data = {}), o = o.data), void 0 !== n && (o[lt.camelCase(e)] = n), "string" == typeof e ? (a = o[e], null == a && (a = o[lt.camelCase(e)])) : a = o, a
				}
			}

			function m(t, e, n) {
				if (lt.acceptData(t)) {
					var i, a, o = t.nodeType,
						r = o ? lt.cache : t,
						s = o ? t[lt.expando] : lt.expando;
					if (r[s]) {
						if (e && (i = n ? r[s] : r[s].data)) {
							lt.isArray(e) ? e = e.concat(lt.map(e, lt.camelCase)) : e in i ? e = [e] : (e = lt.camelCase(e), e = e in i ? [e] : e.split(" ")), a = e.length;
							for (; a--;) delete i[e[a]];
							if (n ? !u(i) : !lt.isEmptyObject(i)) return
						}(n || (delete r[s].data, u(r[s]))) && (o ? lt.cleanData([t], !0) : rt.deleteExpando || r != r.window ? delete r[s] : r[s] = null)
					}
				}
			}

			function f() {
				return !0
			}

			function w() {
				return !1
			}

			function _() {
				try {
					return _t.activeElement
				} catch (t) {}
			}

			function v(t) {
				var e = Rt.split("|"),
					n = t.createDocumentFragment();
				if (n.createElement)
					for (; e.length;) n.createElement(e.pop());
				return n
			}

			function b(t, e) {
				var n, i, a = 0,
					o = typeof t.getElementsByTagName !== St ? t.getElementsByTagName(e || "*") : typeof t.querySelectorAll !== St ? t.querySelectorAll(e || "*") : void 0;
				if (!o)
					for (o = [], n = t.childNodes || t; null != (i = n[a]); a++) !e || lt.nodeName(i, e) ? o.push(i) : lt.merge(o, b(i, e));
				return void 0 === e || e && lt.nodeName(t, e) ? lt.merge([t], o) : o
			}

			function x(t) {
				Ot.test(t.type) && (t.defaultChecked = t.checked)
			}

			function y(t, e) {
				return lt.nodeName(t, "table") && lt.nodeName(11 !== e.nodeType ? e : e.firstChild, "tr") ? t.getElementsByTagName("tbody")[0] || t.appendChild(t.ownerDocument.createElement("tbody")) : t
			}

			function k(t) {
				return t.type = (null !== lt.find.attr(t, "type")) + "/" + t.type, t
			}

			function z(t) {
				var e = Zt.exec(t.type);
				return e ? t.type = e[1] : t.removeAttribute("type"), t
			}

			function C(t, e) {
				for (var n, i = 0; null != (n = t[i]); i++) lt._data(n, "globalEval", !e || lt._data(e[i], "globalEval"))
			}

			function T(t, e) {
				if (1 === e.nodeType && lt.hasData(t)) {
					var n, i, a, o = lt._data(t),
						r = lt._data(e, o),
						s = o.events;
					if (s) {
						delete r.handle, r.events = {};
						for (n in s)
							for (i = 0, a = s[n].length; a > i; i++) lt.event.add(e, n, s[n][i])
					}
					r.data && (r.data = lt.extend({}, r.data))
				}
			}

			function S(t, e) {
				var n, i, a;
				if (1 === e.nodeType) {
					if (n = e.nodeName.toLowerCase(), !rt.noCloneEvent && e[lt.expando]) {
						a = lt._data(e);
						for (i in a.events) lt.removeEvent(e, i, a.handle);
						e.removeAttribute(lt.expando)
					}
					"script" === n && e.text !== t.text ? (k(e).text = t.text, z(e)) : "object" === n ? (e.parentNode && (e.outerHTML = t.outerHTML), rt.html5Clone && t.innerHTML && !lt.trim(e.innerHTML) && (e.innerHTML = t.innerHTML)) : "input" === n && Ot.test(t.type) ? (e.defaultChecked = e.checked = t.checked, e.value !== t.value && (e.value = t.value)) : "option" === n ? e.defaultSelected = e.selected = t.defaultSelected : ("input" === n || "textarea" === n) && (e.defaultValue = t.defaultValue)
				}
			}

			function j(t, e) {
				var n, i = lt(e.createElement(t)).appendTo(e.body),
					o = a.getDefaultComputedStyle && (n = a.getDefaultComputedStyle(i[0])) ? n.display : lt.css(i[0], "display");
				return i.detach(), o
			}

			function I(t) {
				var e = _t,
					n = ie[t];
				return n || (n = j(t, e), "none" !== n && n || (ne = (ne || lt("<iframe frameborder='0' width='0' height='0'/>")).appendTo(e.documentElement), e = (ne[0].contentWindow || ne[0].contentDocument).document, e.write(), e.close(), n = j(t, e), ne.detach()), ie[t] = n), n
			}

			function P(t, e) {
				return {
					get: function() {
						var n = t();
						if (null != n) return n ? void delete this.get : (this.get = e).apply(this, arguments)
					}
				}
			}

			function A(t, e) {
				if (e in t) return e;
				for (var n = e.charAt(0).toUpperCase() + e.slice(1), i = e, a = fe.length; a--;)
					if (e = fe[a] + n, e in t) return e;
				return i
			}

			function E(t, e) {
				for (var n, i, a, o = [], r = 0, s = t.length; s > r; r++) i = t[r], i.style && (o[r] = lt._data(i, "olddisplay"), n = i.style.display, e ? (o[r] || "none" !== n || (i.style.display = ""), "" === i.style.display && Et(i) && (o[r] = lt._data(i, "olddisplay", I(i.nodeName)))) : (a = Et(i), (n && "none" !== n || !a) && lt._data(i, "olddisplay", a ? n : lt.css(i, "display"))));
				for (r = 0; s > r; r++) i = t[r], i.style && (e && "none" !== i.style.display && "" !== i.style.display || (i.style.display = e ? o[r] || "" : "none"));
				return t
			}

			function L(t, e, n) {
				var i = he.exec(e);
				return i ? Math.max(0, i[1] - (n || 0)) + (i[2] || "px") : e
			}

			function O(t, e, n, i, a) {
				for (var o = n === (i ? "border" : "content") ? 4 : "width" === e ? 1 : 0, r = 0; 4 > o; o += 2) "margin" === n && (r += lt.css(t, n + At[o], !0, a)), i ? ("content" === n && (r -= lt.css(t, "padding" + At[o], !0, a)), "margin" !== n && (r -= lt.css(t, "border" + At[o] + "Width", !0, a))) : (r += lt.css(t, "padding" + At[o], !0, a), "padding" !== n && (r += lt.css(t, "border" + At[o] + "Width", !0, a)));
				return r
			}

			function N(t, e, n) {
				var i = !0,
					a = "width" === e ? t.offsetWidth : t.offsetHeight,
					o = ae(t),
					r = rt.boxSizing && "border-box" === lt.css(t, "boxSizing", !1, o);
				if (0 >= a || null == a) {
					if (a = oe(t, e, o), (0 > a || null == a) && (a = t.style[e]), se.test(a)) return a;
					i = r && (rt.boxSizingReliable() || a === t.style[e]), a = parseFloat(a) || 0
				}
				return a + O(t, e, n || (r ? "border" : "content"), i, o) + "px"
			}

			function D(t, e, n, i, a) {
				return new D.prototype.init(t, e, n, i, a)
			}

			function M() {
				return setTimeout(function() {
					we = void 0
				}), we = lt.now()
			}

			function q(t, e) {
				var n, i = {
						height: t
					},
					a = 0;
				for (e = e ? 1 : 0; 4 > a; a += 2 - e) n = At[a], i["margin" + n] = i["padding" + n] = t;
				return e && (i.opacity = i.width = t), i
			}

			function B(t, e, n) {
				for (var i, a = (ke[e] || []).concat(ke["*"]), o = 0, r = a.length; r > o; o++)
					if (i = a[o].call(n, e, t)) return i
			}

			function R(t, e, n) {
				var i, a, o, r, s, l, d, c, p = this,
					h = {},
					u = t.style,
					g = t.nodeType && Et(t),
					m = lt._data(t, "fxshow");
				n.queue || (s = lt._queueHooks(t, "fx"), null == s.unqueued && (s.unqueued = 0, l = s.empty.fire, s.empty.fire = function() {
					s.unqueued || l()
				}), s.unqueued++, p.always(function() {
					p.always(function() {
						s.unqueued--, lt.queue(t, "fx").length || s.empty.fire()
					})
				})), 1 === t.nodeType && ("height" in e || "width" in e) && (n.overflow = [u.overflow, u.overflowX, u.overflowY], d = lt.css(t, "display"), c = "none" === d ? lt._data(t, "olddisplay") || I(t.nodeName) : d, "inline" === c && "none" === lt.css(t, "float") && (rt.inlineBlockNeedsLayout && "inline" !== I(t.nodeName) ? u.zoom = 1 : u.display = "inline-block")), n.overflow && (u.overflow = "hidden", rt.shrinkWrapBlocks() || p.always(function() {
					u.overflow = n.overflow[0], u.overflowX = n.overflow[1], u.overflowY = n.overflow[2]
				}));
				for (i in e)
					if (a = e[i], ve.exec(a)) {
						if (delete e[i], o = o || "toggle" === a, a === (g ? "hide" : "show")) {
							if ("show" !== a || !m || void 0 === m[i]) continue;
							g = !0
						}
						h[i] = m && m[i] || lt.style(t, i)
					} else d = void 0;
				if (lt.isEmptyObject(h)) "inline" === ("none" === d ? I(t.nodeName) : d) && (u.display = d);
				else {
					m ? "hidden" in m && (g = m.hidden) : m = lt._data(t, "fxshow", {}), o && (m.hidden = !g), g ? lt(t).show() : p.done(function() {
						lt(t).hide()
					}), p.done(function() {
						var e;
						lt._removeData(t, "fxshow");
						for (e in h) lt.style(t, e, h[e])
					});
					for (i in h) r = B(g ? m[i] : 0, i, p), i in m || (m[i] = r.start, g && (r.end = r.start, r.start = "width" === i || "height" === i ? 1 : 0))
				}
			}

			function W(t, e) {
				var n, i, a, o, r;
				for (n in t)
					if (i = lt.camelCase(n), a = e[i], o = t[n], lt.isArray(o) && (a = o[1], o = t[n] = o[0]), n !== i && (t[i] = o, delete t[n]), r = lt.cssHooks[i], r && "expand" in r) {
						o = r.expand(o), delete t[i];
						for (n in o) n in t || (t[n] = o[n], e[n] = a)
					} else e[i] = a
			}

			function F(t, e, n) {
				var i, a, o = 0,
					r = ye.length,
					s = lt.Deferred().always(function() {
						delete l.elem
					}),
					l = function() {
						if (a) return !1;
						for (var e = we || M(), n = Math.max(0, d.startTime + d.duration - e), i = n / d.duration || 0, o = 1 - i, r = 0, l = d.tweens.length; l > r; r++) d.tweens[r].run(o);
						return s.notifyWith(t, [d, o, n]), 1 > o && l ? n : (s.resolveWith(t, [d]), !1)
					},
					d = s.promise({
						elem: t,
						props: lt.extend({}, e),
						opts: lt.extend(!0, {
							specialEasing: {}
						}, n),
						originalProperties: e,
						originalOptions: n,
						startTime: we || M(),
						duration: n.duration,
						tweens: [],
						createTween: function(e, n) {
							var i = lt.Tween(t, d.opts, e, n, d.opts.specialEasing[e] || d.opts.easing);
							return d.tweens.push(i), i
						},
						stop: function(e) {
							var n = 0,
								i = e ? d.tweens.length : 0;
							if (a) return this;
							for (a = !0; i > n; n++) d.tweens[n].run(1);
							return e ? s.resolveWith(t, [d, e]) : s.rejectWith(t, [d, e]), this
						}
					}),
					c = d.props;
				for (W(c, d.opts.specialEasing); r > o; o++)
					if (i = ye[o].call(d, t, c, d.opts)) return i;
				return lt.map(c, B, d), lt.isFunction(d.opts.start) && d.opts.start.call(t, d), lt.fx.timer(lt.extend(l, {
					elem: t,
					anim: d,
					queue: d.opts.queue
				})), d.progress(d.opts.progress).done(d.opts.done, d.opts.complete).fail(d.opts.fail).always(d.opts.always)
			}

			function H(t) {
				return function(e, n) {
					"string" != typeof e && (n = e, e = "*");
					var i, a = 0,
						o = e.toLowerCase().match(kt) || [];
					if (lt.isFunction(n))
						for (; i = o[a++];) "+" === i.charAt(0) ? (i = i.slice(1) || "*", (t[i] = t[i] || []).unshift(n)) : (t[i] = t[i] || []).push(n)
				}
			}

			function $(t, e, n, i) {
				function a(s) {
					var l;
					return o[s] = !0, lt.each(t[s] || [], function(t, s) {
						var d = s(e, n, i);
						return "string" != typeof d || r || o[d] ? r ? !(l = d) : void 0 : (e.dataTypes.unshift(d), a(d), !1)
					}), l
				}
				var o = {},
					r = t === Ge;
				return a(e.dataTypes[0]) || !o["*"] && a("*")
			}

			function X(t, e) {
				var n, i, a = lt.ajaxSettings.flatOptions || {};
				for (i in e) void 0 !== e[i] && ((a[i] ? t : n || (n = {}))[i] = e[i]);
				return n && lt.extend(!0, t, n), t
			}

			function U(t, e, n) {
				for (var i, a, o, r, s = t.contents, l = t.dataTypes;
					"*" === l[0];) l.shift(), void 0 === a && (a = t.mimeType || e.getResponseHeader("Content-Type"));
				if (a)
					for (r in s)
						if (s[r] && s[r].test(a)) {
							l.unshift(r);
							break
						}
				if (l[0] in n) o = l[0];
				else {
					for (r in n) {
						if (!l[0] || t.converters[r + " " + l[0]]) {
							o = r;
							break
						}
						i || (i = r)
					}
					o = o || i
				}
				return o ? (o !== l[0] && l.unshift(o), n[o]) : void 0
			}

			function G(t, e, n, i) {
				var a, o, r, s, l, d = {},
					c = t.dataTypes.slice();
				if (c[1])
					for (r in t.converters) d[r.toLowerCase()] = t.converters[r];
				for (o = c.shift(); o;)
					if (t.responseFields[o] && (n[t.responseFields[o]] = e), !l && i && t.dataFilter && (e = t.dataFilter(e, t.dataType)), l = o, o = c.shift())
						if ("*" === o) o = l;
						else if ("*" !== l && l !== o) {
					if (r = d[l + " " + o] || d["* " + o], !r)
						for (a in d)
							if (s = a.split(" "), s[1] === o && (r = d[l + " " + s[0]] || d["* " + s[0]])) {
								r === !0 ? r = d[a] : d[a] !== !0 && (o = s[0], c.unshift(s[1]));
								break
							}
					if (r !== !0)
						if (r && t["throws"]) e = r(e);
						else try {
							e = r(e)
						} catch (p) {
							return {
								state: "parsererror",
								error: r ? p : "No conversion from " + l + " to " + o
							}
						}
				}
				return {
					state: "success",
					data: e
				}
			}

			function Y(t, e, n, i) {
				var a;
				if (lt.isArray(e)) lt.each(e, function(e, a) {
					n || Ze.test(t) ? i(t, a) : Y(t + "[" + ("object" == typeof a ? e : "") + "]", a, n, i)
				});
				else if (n || "object" !== lt.type(e)) i(t, e);
				else
					for (a in e) Y(t + "[" + a + "]", e[a], n, i)
			}

			function V() {
				try {
					return new a.XMLHttpRequest
				} catch (t) {}
			}

			function J() {
				try {
					return new a.ActiveXObject("Microsoft.XMLHTTP")
				} catch (t) {}
			}

			function Z(t) {
				return lt.isWindow(t) ? t : 9 === t.nodeType ? t.defaultView || t.parentWindow : !1
			}
			var K = [],
				Q = K.slice,
				tt = K.concat,
				et = K.push,
				nt = K.indexOf,
				it = {},
				at = it.toString,
				ot = it.hasOwnProperty,
				rt = {},
				st = "1.11.3",
				lt = function(t, e) {
					return new lt.fn.init(t, e)
				},
				dt = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
				ct = /^-ms-/,
				pt = /-([\da-z])/gi,
				ht = function(t, e) {
					return e.toUpperCase()
				};
			lt.fn = lt.prototype = {
				jquery: st,
				constructor: lt,
				selector: "",
				length: 0,
				toArray: function() {
					return Q.call(this)
				},
				get: function(t) {
					return null != t ? 0 > t ? this[t + this.length] : this[t] : Q.call(this)
				},
				pushStack: function(t) {
					var e = lt.merge(this.constructor(), t);
					return e.prevObject = this, e.context = this.context, e
				},
				each: function(t, e) {
					return lt.each(this, t, e)
				},
				map: function(t) {
					return this.pushStack(lt.map(this, function(e, n) {
						return t.call(e, n, e)
					}))
				},
				slice: function() {
					return this.pushStack(Q.apply(this, arguments))
				},
				first: function() {
					return this.eq(0)
				},
				last: function() {
					return this.eq(-1)
				},
				eq: function(t) {
					var e = this.length,
						n = +t + (0 > t ? e : 0);
					return this.pushStack(n >= 0 && e > n ? [this[n]] : [])
				},
				end: function() {
					return this.prevObject || this.constructor(null)
				},
				push: et,
				sort: K.sort,
				splice: K.splice
			}, lt.extend = lt.fn.extend = function() {
				var t, e, n, i, a, o, r = arguments[0] || {},
					s = 1,
					l = arguments.length,
					d = !1;
				for ("boolean" == typeof r && (d = r, r = arguments[s] || {}, s++), "object" == typeof r || lt.isFunction(r) || (r = {}), s === l && (r = this, s--); l > s; s++)
					if (null != (a = arguments[s]))
						for (i in a) t = r[i], n = a[i], r !== n && (d && n && (lt.isPlainObject(n) || (e = lt.isArray(n))) ? (e ? (e = !1, o = t && lt.isArray(t) ? t : []) : o = t && lt.isPlainObject(t) ? t : {}, r[i] = lt.extend(d, o, n)) : void 0 !== n && (r[i] = n));
				return r
			}, lt.extend({
				expando: "jQuery" + (st + Math.random()).replace(/\D/g, ""),
				isReady: !0,
				error: function(t) {
					throw new Error(t)
				},
				noop: function() {},
				isFunction: function(t) {
					return "function" === lt.type(t)
				},
				isArray: Array.isArray || function(t) {
					return "array" === lt.type(t)
				},
				isWindow: function(t) {
					return null != t && t == t.window
				},
				isNumeric: function(t) {
					return !lt.isArray(t) && t - parseFloat(t) + 1 >= 0
				},
				isEmptyObject: function(t) {
					var e;
					for (e in t) return !1;
					return !0
				},
				isPlainObject: function(t) {
					var e;
					if (!t || "object" !== lt.type(t) || t.nodeType || lt.isWindow(t)) return !1;
					try {
						if (t.constructor && !ot.call(t, "constructor") && !ot.call(t.constructor.prototype, "isPrototypeOf")) return !1
					} catch (n) {
						return !1
					}
					if (rt.ownLast)
						for (e in t) return ot.call(t, e);
					for (e in t);
					return void 0 === e || ot.call(t, e)
				},
				type: function(t) {
					return null == t ? t + "" : "object" == typeof t || "function" == typeof t ? it[at.call(t)] || "object" : typeof t
				},
				globalEval: function(t) {
					t && lt.trim(t) && (a.execScript || function(t) {
						a.eval.call(a, t)
					})(t)
				},
				camelCase: function(t) {
					return t.replace(ct, "ms-").replace(pt, ht)
				},
				nodeName: function(t, e) {
					return t.nodeName && t.nodeName.toLowerCase() === e.toLowerCase()
				},
				each: function(t, e, n) {
					var i, a = 0,
						o = t.length,
						s = r(t);
					if (n) {
						if (s)
							for (; o > a && (i = e.apply(t[a], n), i !== !1); a++);
						else
							for (a in t)
								if (i = e.apply(t[a], n), i === !1) break
					} else if (s)
						for (; o > a && (i = e.call(t[a], a, t[a]), i !== !1); a++);
					else
						for (a in t)
							if (i = e.call(t[a], a, t[a]), i === !1) break; return t
				},
				trim: function(t) {
					return null == t ? "" : (t + "").replace(dt, "")
				},
				makeArray: function(t, e) {
					var n = e || [];
					return null != t && (r(Object(t)) ? lt.merge(n, "string" == typeof t ? [t] : t) : et.call(n, t)), n
				},
				inArray: function(t, e, n) {
					var i;
					if (e) {
						if (nt) return nt.call(e, t, n);
						for (i = e.length, n = n ? 0 > n ? Math.max(0, i + n) : n : 0; i > n; n++)
							if (n in e && e[n] === t) return n
					}
					return -1
				},
				merge: function(t, e) {
					for (var n = +e.length, i = 0, a = t.length; n > i;) t[a++] = e[i++];
					if (n !== n)
						for (; void 0 !== e[i];) t[a++] = e[i++];
					return t.length = a, t
				},
				grep: function(t, e, n) {
					for (var i, a = [], o = 0, r = t.length, s = !n; r > o; o++) i = !e(t[o], o), i !== s && a.push(t[o]);
					return a
				},
				map: function(t, e, n) {
					var i, a = 0,
						o = t.length,
						s = r(t),
						l = [];
					if (s)
						for (; o > a; a++) i = e(t[a], a, n), null != i && l.push(i);
					else
						for (a in t) i = e(t[a], a, n), null != i && l.push(i);
					return tt.apply([], l)
				},
				guid: 1,
				proxy: function(t, e) {
					var n, i, a;
					return "string" == typeof e && (a = t[e], e = t, t = a), lt.isFunction(t) ? (n = Q.call(arguments, 2), i = function() {
						return t.apply(e || this, n.concat(Q.call(arguments)))
					}, i.guid = t.guid = t.guid || lt.guid++, i) : void 0
				},
				now: function() {
					return +new Date
				},
				support: rt
			}), lt.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(t, e) {
				it["[object " + e + "]"] = e.toLowerCase()
			});
			var ut = function(t) {
				function e(t, e, n, i) {
					var a, o, r, s, l, d, p, u, g, m;
					if ((e ? e.ownerDocument || e : R) !== E && A(e), e = e || E, n = n || [], s = e.nodeType, "string" != typeof t || !t || 1 !== s && 9 !== s && 11 !== s) return n;
					if (!i && O) {
						if (11 !== s && (a = _t.exec(t)))
							if (r = a[1]) {
								if (9 === s) {
									if (o = e.getElementById(r), !o || !o.parentNode) return n;
									if (o.id === r) return n.push(o), n
								} else if (e.ownerDocument && (o = e.ownerDocument.getElementById(r)) && q(e, o) && o.id === r) return n.push(o), n
							} else {
								if (a[2]) return K.apply(n, e.getElementsByTagName(t)), n;
								if ((r = a[3]) && x.getElementsByClassName) return K.apply(n, e.getElementsByClassName(r)), n
							}
						if (x.qsa && (!N || !N.test(t))) {
							if (u = p = B, g = e, m = 1 !== s && t, 1 === s && "object" !== e.nodeName.toLowerCase()) {
								for (d = C(t), (p = e.getAttribute("id")) ? u = p.replace(bt, "\\$&") : e.setAttribute("id", u), u = "[id='" + u + "'] ", l = d.length; l--;) d[l] = u + h(d[l]);
								g = vt.test(t) && c(e.parentNode) || e, m = d.join(",")
							}
							if (m) try {
								return K.apply(n, g.querySelectorAll(m)), n
							} catch (f) {} finally {
								p || e.removeAttribute("id")
							}
						}
					}
					return S(t.replace(lt, "$1"), e, n, i)
				}

				function n() {
					function t(n, i) {
						return e.push(n + " ") > y.cacheLength && delete t[e.shift()], t[n + " "] = i
					}
					var e = [];
					return t
				}

				function i(t) {
					return t[B] = !0, t
				}

				function a(t) {
					var e = E.createElement("div");
					try {
						return !!t(e)
					} catch (n) {
						return !1
					} finally {
						e.parentNode && e.parentNode.removeChild(e), e = null
					}
				}

				function o(t, e) {
					for (var n = t.split("|"), i = t.length; i--;) y.attrHandle[n[i]] = e
				}

				function r(t, e) {
					var n = e && t,
						i = n && 1 === t.nodeType && 1 === e.nodeType && (~e.sourceIndex || G) - (~t.sourceIndex || G);
					if (i) return i;
					if (n)
						for (; n = n.nextSibling;)
							if (n === e) return -1;
					return t ? 1 : -1
				}

				function s(t) {
					return function(e) {
						var n = e.nodeName.toLowerCase();
						return "input" === n && e.type === t
					}
				}

				function l(t) {
					return function(e) {
						var n = e.nodeName.toLowerCase();
						return ("input" === n || "button" === n) && e.type === t
					}
				}

				function d(t) {
					return i(function(e) {
						return e = +e, i(function(n, i) {
							for (var a, o = t([], n.length, e), r = o.length; r--;) n[a = o[r]] && (n[a] = !(i[a] = n[a]))
						})
					})
				}

				function c(t) {
					return t && "undefined" != typeof t.getElementsByTagName && t
				}

				function p() {}

				function h(t) {
					for (var e = 0, n = t.length, i = ""; n > e; e++) i += t[e].value;
					return i
				}

				function u(t, e, n) {
					var i = e.dir,
						a = n && "parentNode" === i,
						o = F++;
					return e.first ? function(e, n, o) {
						for (; e = e[i];)
							if (1 === e.nodeType || a) return t(e, n, o)
					} : function(e, n, r) {
						var s, l, d = [W, o];
						if (r) {
							for (; e = e[i];)
								if ((1 === e.nodeType || a) && t(e, n, r)) return !0
						} else
							for (; e = e[i];)
								if (1 === e.nodeType || a) {
									if (l = e[B] || (e[B] = {}), (s = l[i]) && s[0] === W && s[1] === o) return d[2] = s[2];
									if (l[i] = d, d[2] = t(e, n, r)) return !0
								}
					}
				}

				function g(t) {
					return t.length > 1 ? function(e, n, i) {
						for (var a = t.length; a--;)
							if (!t[a](e, n, i)) return !1;
						return !0
					} : t[0]
				}

				function m(t, n, i) {
					for (var a = 0, o = n.length; o > a; a++) e(t, n[a], i);
					return i
				}

				function f(t, e, n, i, a) {
					for (var o, r = [], s = 0, l = t.length, d = null != e; l > s; s++)(o = t[s]) && (!n || n(o, i, a)) && (r.push(o), d && e.push(s));
					return r
				}

				function w(t, e, n, a, o, r) {
					return a && !a[B] && (a = w(a)), o && !o[B] && (o = w(o, r)), i(function(i, r, s, l) {
						var d, c, p, h = [],
							u = [],
							g = r.length,
							w = i || m(e || "*", s.nodeType ? [s] : s, []),
							_ = !t || !i && e ? w : f(w, h, t, s, l),
							v = n ? o || (i ? t : g || a) ? [] : r : _;
						if (n && n(_, v, s, l), a)
							for (d = f(v, u), a(d, [], s, l), c = d.length; c--;)(p = d[c]) && (v[u[c]] = !(_[u[c]] = p));
						if (i) {
							if (o || t) {
								if (o) {
									for (d = [], c = v.length; c--;)(p = v[c]) && d.push(_[c] = p);
									o(null, v = [], d, l)
								}
								for (c = v.length; c--;)(p = v[c]) && (d = o ? tt(i, p) : h[c]) > -1 && (i[d] = !(r[d] = p))
							}
						} else v = f(v === r ? v.splice(g, v.length) : v), o ? o(null, r, v, l) : K.apply(r, v)
					})
				}

				function _(t) {
					for (var e, n, i, a = t.length, o = y.relative[t[0].type], r = o || y.relative[" "], s = o ? 1 : 0, l = u(function(t) {
						return t === e
					}, r, !0), d = u(function(t) {
						return tt(e, t) > -1
					}, r, !0), c = [
						function(t, n, i) {
							var a = !o && (i || n !== j) || ((e = n).nodeType ? l(t, n, i) : d(t, n, i));
							return e = null, a
						}
					]; a > s; s++)
						if (n = y.relative[t[s].type]) c = [u(g(c), n)];
						else {
							if (n = y.filter[t[s].type].apply(null, t[s].matches), n[B]) {
								for (i = ++s; a > i && !y.relative[t[i].type]; i++);
								return w(s > 1 && g(c), s > 1 && h(t.slice(0, s - 1).concat({
									value: " " === t[s - 2].type ? "*" : ""
								})).replace(lt, "$1"), n, i > s && _(t.slice(s, i)), a > i && _(t = t.slice(i)), a > i && h(t))
							}
							c.push(n)
						}
					return g(c)
				}

				function v(t, n) {
					var a = n.length > 0,
						o = t.length > 0,
						r = function(i, r, s, l, d) {
							var c, p, h, u = 0,
								g = "0",
								m = i && [],
								w = [],
								_ = j,
								v = i || o && y.find.TAG("*", d),
								b = W += null == _ ? 1 : Math.random() || .1,
								x = v.length;
							for (d && (j = r !== E && r); g !== x && null != (c = v[g]); g++) {
								if (o && c) {
									for (p = 0; h = t[p++];)
										if (h(c, r, s)) {
											l.push(c);
											break
										}
									d && (W = b)
								}
								a && ((c = !h && c) && u--, i && m.push(c))
							}
							if (u += g, a && g !== u) {
								for (p = 0; h = n[p++];) h(m, w, r, s);
								if (i) {
									if (u > 0)
										for (; g--;) m[g] || w[g] || (w[g] = J.call(l));
									w = f(w)
								}
								K.apply(l, w), d && !i && w.length > 0 && u + n.length > 1 && e.uniqueSort(l)
							}
							return d && (W = b, j = _), m
						};
					return a ? i(r) : r
				}
				var b, x, y, k, z, C, T, S, j, I, P, A, E, L, O, N, D, M, q, B = "sizzle" + 1 * new Date,
					R = t.document,
					W = 0,
					F = 0,
					H = n(),
					$ = n(),
					X = n(),
					U = function(t, e) {
						return t === e && (P = !0), 0
					},
					G = 1 << 31,
					Y = {}.hasOwnProperty,
					V = [],
					J = V.pop,
					Z = V.push,
					K = V.push,
					Q = V.slice,
					tt = function(t, e) {
						for (var n = 0, i = t.length; i > n; n++)
							if (t[n] === e) return n;
						return -1
					},
					et = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
					nt = "[\\x20\\t\\r\\n\\f]",
					it = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
					at = it.replace("w", "w#"),
					ot = "\\[" + nt + "*(" + it + ")(?:" + nt + "*([*^$|!~]?=)" + nt + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + at + "))|)" + nt + "*\\]",
					rt = ":(" + it + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + ot + ")*)|.*)\\)|)",
					st = new RegExp(nt + "+", "g"),
					lt = new RegExp("^" + nt + "+|((?:^|[^\\\\])(?:\\\\.)*)" + nt + "+$", "g"),
					dt = new RegExp("^" + nt + "*," + nt + "*"),
					ct = new RegExp("^" + nt + "*([>+~]|" + nt + ")" + nt + "*"),
					pt = new RegExp("=" + nt + "*([^\\]'\"]*?)" + nt + "*\\]", "g"),
					ht = new RegExp(rt),
					ut = new RegExp("^" + at + "$"),
					gt = {
						ID: new RegExp("^#(" + it + ")"),
						CLASS: new RegExp("^\\.(" + it + ")"),
						TAG: new RegExp("^(" + it.replace("w", "w*") + ")"),
						ATTR: new RegExp("^" + ot),
						PSEUDO: new RegExp("^" + rt),
						CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + nt + "*(even|odd|(([+-]|)(\\d*)n|)" + nt + "*(?:([+-]|)" + nt + "*(\\d+)|))" + nt + "*\\)|)", "i"),
						bool: new RegExp("^(?:" + et + ")$", "i"),
						needsContext: new RegExp("^" + nt + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + nt + "*((?:-\\d)?\\d*)" + nt + "*\\)|)(?=[^-]|$)", "i")
					},
					mt = /^(?:input|select|textarea|button)$/i,
					ft = /^h\d$/i,
					wt = /^[^{]+\{\s*\[native \w/,
					_t = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
					vt = /[+~]/,
					bt = /'|\\/g,
					xt = new RegExp("\\\\([\\da-f]{1,6}" + nt + "?|(" + nt + ")|.)", "ig"),
					yt = function(t, e, n) {
						var i = "0x" + e - 65536;
						return i !== i || n ? e : 0 > i ? String.fromCharCode(i + 65536) : String.fromCharCode(i >> 10 | 55296, 1023 & i | 56320)
					},
					kt = function() {
						A()
					};
				try {
					K.apply(V = Q.call(R.childNodes), R.childNodes), V[R.childNodes.length].nodeType
				} catch (zt) {
					K = {
						apply: V.length ? function(t, e) {
							Z.apply(t, Q.call(e))
						} : function(t, e) {
							for (var n = t.length, i = 0; t[n++] = e[i++];);
							t.length = n - 1
						}
					}
				}
				x = e.support = {}, z = e.isXML = function(t) {
					var e = t && (t.ownerDocument || t).documentElement;
					return e ? "HTML" !== e.nodeName : !1
				}, A = e.setDocument = function(t) {
					var e, n, i = t ? t.ownerDocument || t : R;
					return i !== E && 9 === i.nodeType && i.documentElement ? (E = i, L = i.documentElement, n = i.defaultView, n && n !== n.top && (n.addEventListener ? n.addEventListener("unload", kt, !1) : n.attachEvent && n.attachEvent("onunload", kt)), O = !z(i), x.attributes = a(function(t) {
						return t.className = "i", !t.getAttribute("className")
					}), x.getElementsByTagName = a(function(t) {
						return t.appendChild(i.createComment("")), !t.getElementsByTagName("*").length
					}), x.getElementsByClassName = wt.test(i.getElementsByClassName), x.getById = a(function(t) {
						return L.appendChild(t).id = B, !i.getElementsByName || !i.getElementsByName(B).length
					}), x.getById ? (y.find.ID = function(t, e) {
						if ("undefined" != typeof e.getElementById && O) {
							var n = e.getElementById(t);
							return n && n.parentNode ? [n] : []
						}
					}, y.filter.ID = function(t) {
						var e = t.replace(xt, yt);
						return function(t) {
							return t.getAttribute("id") === e
						}
					}) : (delete y.find.ID, y.filter.ID = function(t) {
						var e = t.replace(xt, yt);
						return function(t) {
							var n = "undefined" != typeof t.getAttributeNode && t.getAttributeNode("id");
							return n && n.value === e
						}
					}), y.find.TAG = x.getElementsByTagName ? function(t, e) {
						return "undefined" != typeof e.getElementsByTagName ? e.getElementsByTagName(t) : x.qsa ? e.querySelectorAll(t) : void 0
					} : function(t, e) {
						var n, i = [],
							a = 0,
							o = e.getElementsByTagName(t);
						if ("*" === t) {
							for (; n = o[a++];) 1 === n.nodeType && i.push(n);
							return i
						}
						return o
					}, y.find.CLASS = x.getElementsByClassName && function(t, e) {
						return O ? e.getElementsByClassName(t) : void 0
					}, D = [], N = [], (x.qsa = wt.test(i.querySelectorAll)) && (a(function(t) {
						L.appendChild(t).innerHTML = "<a id='" + B + "'></a><select id='" + B + "-\f]' msallowcapture=''><option selected=''></option></select>", t.querySelectorAll("[msallowcapture^='']").length && N.push("[*^$]=" + nt + "*(?:''|\"\")"), t.querySelectorAll("[selected]").length || N.push("\\[" + nt + "*(?:value|" + et + ")"), t.querySelectorAll("[id~=" + B + "-]").length || N.push("~="), t.querySelectorAll(":checked").length || N.push(":checked"), t.querySelectorAll("a#" + B + "+*").length || N.push(".#.+[+~]")
					}), a(function(t) {
						var e = i.createElement("input");
						e.setAttribute("type", "hidden"), t.appendChild(e).setAttribute("name", "D"), t.querySelectorAll("[name=d]").length && N.push("name" + nt + "*[*^$|!~]?="), t.querySelectorAll(":enabled").length || N.push(":enabled", ":disabled"), t.querySelectorAll("*,:x"), N.push(",.*:")
					})), (x.matchesSelector = wt.test(M = L.matches || L.webkitMatchesSelector || L.mozMatchesSelector || L.oMatchesSelector || L.msMatchesSelector)) && a(function(t) {
						x.disconnectedMatch = M.call(t, "div"), M.call(t, "[s!='']:x"), D.push("!=", rt)
					}), N = N.length && new RegExp(N.join("|")), D = D.length && new RegExp(D.join("|")), e = wt.test(L.compareDocumentPosition), q = e || wt.test(L.contains) ? function(t, e) {
						var n = 9 === t.nodeType ? t.documentElement : t,
							i = e && e.parentNode;
						return t === i || !(!i || 1 !== i.nodeType || !(n.contains ? n.contains(i) : t.compareDocumentPosition && 16 & t.compareDocumentPosition(i)))
					} : function(t, e) {
						if (e)
							for (; e = e.parentNode;)
								if (e === t) return !0;
						return !1
					}, U = e ? function(t, e) {
						if (t === e) return P = !0, 0;
						var n = !t.compareDocumentPosition - !e.compareDocumentPosition;
						return n ? n : (n = (t.ownerDocument || t) === (e.ownerDocument || e) ? t.compareDocumentPosition(e) : 1, 1 & n || !x.sortDetached && e.compareDocumentPosition(t) === n ? t === i || t.ownerDocument === R && q(R, t) ? -1 : e === i || e.ownerDocument === R && q(R, e) ? 1 : I ? tt(I, t) - tt(I, e) : 0 : 4 & n ? -1 : 1)
					} : function(t, e) {
						if (t === e) return P = !0, 0;
						var n, a = 0,
							o = t.parentNode,
							s = e.parentNode,
							l = [t],
							d = [e];
						if (!o || !s) return t === i ? -1 : e === i ? 1 : o ? -1 : s ? 1 : I ? tt(I, t) - tt(I, e) : 0;
						if (o === s) return r(t, e);
						for (n = t; n = n.parentNode;) l.unshift(n);
						for (n = e; n = n.parentNode;) d.unshift(n);
						for (; l[a] === d[a];) a++;
						return a ? r(l[a], d[a]) : l[a] === R ? -1 : d[a] === R ? 1 : 0
					}, i) : E
				}, e.matches = function(t, n) {
					return e(t, null, null, n)
				}, e.matchesSelector = function(t, n) {
					if ((t.ownerDocument || t) !== E && A(t), n = n.replace(pt, "='$1']"), !(!x.matchesSelector || !O || D && D.test(n) || N && N.test(n))) try {
						var i = M.call(t, n);
						if (i || x.disconnectedMatch || t.document && 11 !== t.document.nodeType) return i
					} catch (a) {}
					return e(n, E, null, [t]).length > 0
				}, e.contains = function(t, e) {
					return (t.ownerDocument || t) !== E && A(t), q(t, e)
				}, e.attr = function(t, e) {
					(t.ownerDocument || t) !== E && A(t);
					var n = y.attrHandle[e.toLowerCase()],
						i = n && Y.call(y.attrHandle, e.toLowerCase()) ? n(t, e, !O) : void 0;
					return void 0 !== i ? i : x.attributes || !O ? t.getAttribute(e) : (i = t.getAttributeNode(e)) && i.specified ? i.value : null
				}, e.error = function(t) {
					throw new Error("Syntax error, unrecognized expression: " + t)
				}, e.uniqueSort = function(t) {
					var e, n = [],
						i = 0,
						a = 0;
					if (P = !x.detectDuplicates, I = !x.sortStable && t.slice(0), t.sort(U), P) {
						for (; e = t[a++];) e === t[a] && (i = n.push(a));
						for (; i--;) t.splice(n[i], 1)
					}
					return I = null, t
				}, k = e.getText = function(t) {
					var e, n = "",
						i = 0,
						a = t.nodeType;
					if (a) {
						if (1 === a || 9 === a || 11 === a) {
							if ("string" == typeof t.textContent) return t.textContent;
							for (t = t.firstChild; t; t = t.nextSibling) n += k(t)
						} else if (3 === a || 4 === a) return t.nodeValue
					} else
						for (; e = t[i++];) n += k(e);
					return n
				}, y = e.selectors = {
					cacheLength: 50,
					createPseudo: i,
					match: gt,
					attrHandle: {},
					find: {},
					relative: {
						">": {
							dir: "parentNode",
							first: !0
						},
						" ": {
							dir: "parentNode"
						},
						"+": {
							dir: "previousSibling",
							first: !0
						},
						"~": {
							dir: "previousSibling"
						}
					},
					preFilter: {
						ATTR: function(t) {
							return t[1] = t[1].replace(xt, yt), t[3] = (t[3] || t[4] || t[5] || "").replace(xt, yt), "~=" === t[2] && (t[3] = " " + t[3] + " "), t.slice(0, 4)
						},
						CHILD: function(t) {
							return t[1] = t[1].toLowerCase(), "nth" === t[1].slice(0, 3) ? (t[3] || e.error(t[0]), t[4] = +(t[4] ? t[5] + (t[6] || 1) : 2 * ("even" === t[3] || "odd" === t[3])), t[5] = +(t[7] + t[8] || "odd" === t[3])) : t[3] && e.error(t[0]), t
						},
						PSEUDO: function(t) {
							var e, n = !t[6] && t[2];
							return gt.CHILD.test(t[0]) ? null : (t[3] ? t[2] = t[4] || t[5] || "" : n && ht.test(n) && (e = C(n, !0)) && (e = n.indexOf(")", n.length - e) - n.length) && (t[0] = t[0].slice(0, e), t[2] = n.slice(0, e)), t.slice(0, 3))
						}
					},
					filter: {
						TAG: function(t) {
							var e = t.replace(xt, yt).toLowerCase();
							return "*" === t ? function() {
								return !0
							} : function(t) {
								return t.nodeName && t.nodeName.toLowerCase() === e
							}
						},
						CLASS: function(t) {
							var e = H[t + " "];
							return e || (e = new RegExp("(^|" + nt + ")" + t + "(" + nt + "|$)")) && H(t, function(t) {
								return e.test("string" == typeof t.className && t.className || "undefined" != typeof t.getAttribute && t.getAttribute("class") || "")
							})
						},
						ATTR: function(t, n, i) {
							return function(a) {
								var o = e.attr(a, t);
								return null == o ? "!=" === n : n ? (o += "", "=" === n ? o === i : "!=" === n ? o !== i : "^=" === n ? i && 0 === o.indexOf(i) : "*=" === n ? i && o.indexOf(i) > -1 : "$=" === n ? i && o.slice(-i.length) === i : "~=" === n ? (" " + o.replace(st, " ") + " ").indexOf(i) > -1 : "|=" === n ? o === i || o.slice(0, i.length + 1) === i + "-" : !1) : !0
							}
						},
						CHILD: function(t, e, n, i, a) {
							var o = "nth" !== t.slice(0, 3),
								r = "last" !== t.slice(-4),
								s = "of-type" === e;
							return 1 === i && 0 === a ? function(t) {
								return !!t.parentNode
							} : function(e, n, l) {
								var d, c, p, h, u, g, m = o !== r ? "nextSibling" : "previousSibling",
									f = e.parentNode,
									w = s && e.nodeName.toLowerCase(),
									_ = !l && !s;
								if (f) {
									if (o) {
										for (; m;) {
											for (p = e; p = p[m];)
												if (s ? p.nodeName.toLowerCase() === w : 1 === p.nodeType) return !1;
											g = m = "only" === t && !g && "nextSibling"
										}
										return !0
									}
									if (g = [r ? f.firstChild : f.lastChild], r && _) {
										for (c = f[B] || (f[B] = {}), d = c[t] || [], u = d[0] === W && d[1], h = d[0] === W && d[2], p = u && f.childNodes[u]; p = ++u && p && p[m] || (h = u = 0) || g.pop();)
											if (1 === p.nodeType && ++h && p === e) {
												c[t] = [W, u, h];
												break
											}
									} else if (_ && (d = (e[B] || (e[B] = {}))[t]) && d[0] === W) h = d[1];
									else
										for (;
											(p = ++u && p && p[m] || (h = u = 0) || g.pop()) && ((s ? p.nodeName.toLowerCase() !== w : 1 !== p.nodeType) || !++h || (_ && ((p[B] || (p[B] = {}))[t] = [W, h]), p !== e)););
									return h -= a, h === i || h % i === 0 && h / i >= 0
								}
							}
						},
						PSEUDO: function(t, n) {
							var a, o = y.pseudos[t] || y.setFilters[t.toLowerCase()] || e.error("unsupported pseudo: " + t);
							return o[B] ? o(n) : o.length > 1 ? (a = [t, t, "", n], y.setFilters.hasOwnProperty(t.toLowerCase()) ? i(function(t, e) {
								for (var i, a = o(t, n), r = a.length; r--;) i = tt(t, a[r]), t[i] = !(e[i] = a[r])
							}) : function(t) {
								return o(t, 0, a)
							}) : o
						}
					},
					pseudos: {
						not: i(function(t) {
							var e = [],
								n = [],
								a = T(t.replace(lt, "$1"));
							return a[B] ? i(function(t, e, n, i) {
								for (var o, r = a(t, null, i, []), s = t.length; s--;)(o = r[s]) && (t[s] = !(e[s] = o))
							}) : function(t, i, o) {
								return e[0] = t, a(e, null, o, n), e[0] = null, !n.pop()
							}
						}),
						has: i(function(t) {
							return function(n) {
								return e(t, n).length > 0
							}
						}),
						contains: i(function(t) {
							return t = t.replace(xt, yt),
								function(e) {
									return (e.textContent || e.innerText || k(e)).indexOf(t) > -1
								}
						}),
						lang: i(function(t) {
							return ut.test(t || "") || e.error("unsupported lang: " + t), t = t.replace(xt, yt).toLowerCase(),
								function(e) {
									var n;
									do
										if (n = O ? e.lang : e.getAttribute("xml:lang") || e.getAttribute("lang")) return n = n.toLowerCase(), n === t || 0 === n.indexOf(t + "-");
									while ((e = e.parentNode) && 1 === e.nodeType);
									return !1
								}
						}),
						target: function(e) {
							var n = t.location && t.location.hash;
							return n && n.slice(1) === e.id
						},
						root: function(t) {
							return t === L
						},
						focus: function(t) {
							return t === E.activeElement && (!E.hasFocus || E.hasFocus()) && !!(t.type || t.href || ~t.tabIndex)
						},
						enabled: function(t) {
							return t.disabled === !1
						},
						disabled: function(t) {
							return t.disabled === !0
						},
						checked: function(t) {
							var e = t.nodeName.toLowerCase();
							return "input" === e && !!t.checked || "option" === e && !!t.selected
						},
						selected: function(t) {
							return t.parentNode && t.parentNode.selectedIndex, t.selected === !0
						},
						empty: function(t) {
							for (t = t.firstChild; t; t = t.nextSibling)
								if (t.nodeType < 6) return !1;
							return !0
						},
						parent: function(t) {
							return !y.pseudos.empty(t)
						},
						header: function(t) {
							return ft.test(t.nodeName)
						},
						input: function(t) {
							return mt.test(t.nodeName)
						},
						button: function(t) {
							var e = t.nodeName.toLowerCase();
							return "input" === e && "button" === t.type || "button" === e
						},
						text: function(t) {
							var e;
							return "input" === t.nodeName.toLowerCase() && "text" === t.type && (null == (e = t.getAttribute("type")) || "text" === e.toLowerCase())
						},
						first: d(function() {
							return [0]
						}),
						last: d(function(t, e) {
							return [e - 1]
						}),
						eq: d(function(t, e, n) {
							return [0 > n ? n + e : n]
						}),
						even: d(function(t, e) {
							for (var n = 0; e > n; n += 2) t.push(n);
							return t
						}),
						odd: d(function(t, e) {
							for (var n = 1; e > n; n += 2) t.push(n);
							return t
						}),
						lt: d(function(t, e, n) {
							for (var i = 0 > n ? n + e : n; --i >= 0;) t.push(i);
							return t
						}),
						gt: d(function(t, e, n) {
							for (var i = 0 > n ? n + e : n; ++i < e;) t.push(i);
							return t
						})
					}
				}, y.pseudos.nth = y.pseudos.eq;
				for (b in {
					radio: !0,
					checkbox: !0,
					file: !0,
					password: !0,
					image: !0
				}) y.pseudos[b] = s(b);
				for (b in {
					submit: !0,
					reset: !0
				}) y.pseudos[b] = l(b);
				return p.prototype = y.filters = y.pseudos, y.setFilters = new p, C = e.tokenize = function(t, n) {
					var i, a, o, r, s, l, d, c = $[t + " "];
					if (c) return n ? 0 : c.slice(0);
					for (s = t, l = [], d = y.preFilter; s;) {
						(!i || (a = dt.exec(s))) && (a && (s = s.slice(a[0].length) || s), l.push(o = [])), i = !1, (a = ct.exec(s)) && (i = a.shift(), o.push({
							value: i,
							type: a[0].replace(lt, " ")
						}), s = s.slice(i.length));
						for (r in y.filter) !(a = gt[r].exec(s)) || d[r] && !(a = d[r](a)) || (i = a.shift(), o.push({
							value: i,
							type: r,
							matches: a
						}), s = s.slice(i.length));
						if (!i) break
					}
					return n ? s.length : s ? e.error(t) : $(t, l).slice(0)
				}, T = e.compile = function(t, e) {
					var n, i = [],
						a = [],
						o = X[t + " "];
					if (!o) {
						for (e || (e = C(t)), n = e.length; n--;) o = _(e[n]), o[B] ? i.push(o) : a.push(o);
						o = X(t, v(a, i)), o.selector = t
					}
					return o
				}, S = e.select = function(t, e, n, i) {
					var a, o, r, s, l, d = "function" == typeof t && t,
						p = !i && C(t = d.selector || t);
					if (n = n || [], 1 === p.length) {
						if (o = p[0] = p[0].slice(0), o.length > 2 && "ID" === (r = o[0]).type && x.getById && 9 === e.nodeType && O && y.relative[o[1].type]) {
							if (e = (y.find.ID(r.matches[0].replace(xt, yt), e) || [])[0], !e) return n;
							d && (e = e.parentNode), t = t.slice(o.shift().value.length)
						}
						for (a = gt.needsContext.test(t) ? 0 : o.length; a-- && (r = o[a], !y.relative[s = r.type]);)
							if ((l = y.find[s]) && (i = l(r.matches[0].replace(xt, yt), vt.test(o[0].type) && c(e.parentNode) || e))) {
								if (o.splice(a, 1), t = i.length && h(o), !t) return K.apply(n, i), n;
								break
							}
					}
					return (d || T(t, p))(i, e, !O, n, vt.test(t) && c(e.parentNode) || e), n
				}, x.sortStable = B.split("").sort(U).join("") === B, x.detectDuplicates = !!P, A(), x.sortDetached = a(function(t) {
					return 1 & t.compareDocumentPosition(E.createElement("div"))
				}), a(function(t) {
					return t.innerHTML = "<a href='#'></a>", "#" === t.firstChild.getAttribute("href")
				}) || o("type|href|height|width", function(t, e, n) {
					return n ? void 0 : t.getAttribute(e, "type" === e.toLowerCase() ? 1 : 2)
				}), x.attributes && a(function(t) {
					return t.innerHTML = "<input/>", t.firstChild.setAttribute("value", ""), "" === t.firstChild.getAttribute("value")
				}) || o("value", function(t, e, n) {
					return n || "input" !== t.nodeName.toLowerCase() ? void 0 : t.defaultValue
				}), a(function(t) {
					return null == t.getAttribute("disabled")
				}) || o(et, function(t, e, n) {
					var i;
					return n ? void 0 : t[e] === !0 ? e.toLowerCase() : (i = t.getAttributeNode(e)) && i.specified ? i.value : null
				}), e
			}(a);
			lt.find = ut, lt.expr = ut.selectors, lt.expr[":"] = lt.expr.pseudos, lt.unique = ut.uniqueSort, lt.text = ut.getText, lt.isXMLDoc = ut.isXML, lt.contains = ut.contains;
			var gt = lt.expr.match.needsContext,
				mt = /^<(\w+)\s*\/?>(?:<\/\1>|)$/,
				ft = /^.[^:#\[\.,]*$/;
			lt.filter = function(t, e, n) {
				var i = e[0];
				return n && (t = ":not(" + t + ")"), 1 === e.length && 1 === i.nodeType ? lt.find.matchesSelector(i, t) ? [i] : [] : lt.find.matches(t, lt.grep(e, function(t) {
					return 1 === t.nodeType
				}))
			}, lt.fn.extend({
				find: function(t) {
					var e, n = [],
						i = this,
						a = i.length;
					if ("string" != typeof t) return this.pushStack(lt(t).filter(function() {
						for (e = 0; a > e; e++)
							if (lt.contains(i[e], this)) return !0
					}));
					for (e = 0; a > e; e++) lt.find(t, i[e], n);
					return n = this.pushStack(a > 1 ? lt.unique(n) : n), n.selector = this.selector ? this.selector + " " + t : t, n
				},
				filter: function(t) {
					return this.pushStack(s(this, t || [], !1))
				},
				not: function(t) {
					return this.pushStack(s(this, t || [], !0))
				},
				is: function(t) {
					return !!s(this, "string" == typeof t && gt.test(t) ? lt(t) : t || [], !1).length
				}
			});
			var wt, _t = a.document,
				vt = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,
				bt = lt.fn.init = function(t, e) {
					var n, i;
					if (!t) return this;
					if ("string" == typeof t) {
						if (n = "<" === t.charAt(0) && ">" === t.charAt(t.length - 1) && t.length >= 3 ? [null, t, null] : vt.exec(t), !n || !n[1] && e) return !e || e.jquery ? (e || wt).find(t) : this.constructor(e).find(t);
						if (n[1]) {
							if (e = e instanceof lt ? e[0] : e, lt.merge(this, lt.parseHTML(n[1], e && e.nodeType ? e.ownerDocument || e : _t, !0)), mt.test(n[1]) && lt.isPlainObject(e))
								for (n in e) lt.isFunction(this[n]) ? this[n](e[n]) : this.attr(n, e[n]);
							return this
						}
						if (i = _t.getElementById(n[2]), i && i.parentNode) {
							if (i.id !== n[2]) return wt.find(t);
							this.length = 1, this[0] = i
						}
						return this.context = _t, this.selector = t, this
					}
					return t.nodeType ? (this.context = this[0] = t, this.length = 1, this) : lt.isFunction(t) ? "undefined" != typeof wt.ready ? wt.ready(t) : t(lt) : (void 0 !== t.selector && (this.selector = t.selector, this.context = t.context), lt.makeArray(t, this))
				};
			bt.prototype = lt.fn, wt = lt(_t);
			var xt = /^(?:parents|prev(?:Until|All))/,
				yt = {
					children: !0,
					contents: !0,
					next: !0,
					prev: !0
				};
			lt.extend({
				dir: function(t, e, n) {
					for (var i = [], a = t[e]; a && 9 !== a.nodeType && (void 0 === n || 1 !== a.nodeType || !lt(a).is(n));) 1 === a.nodeType && i.push(a), a = a[e];
					return i
				},
				sibling: function(t, e) {
					for (var n = []; t; t = t.nextSibling) 1 === t.nodeType && t !== e && n.push(t);
					return n
				}
			}), lt.fn.extend({
				has: function(t) {
					var e, n = lt(t, this),
						i = n.length;
					return this.filter(function() {
						for (e = 0; i > e; e++)
							if (lt.contains(this, n[e])) return !0
					})
				},
				closest: function(t, e) {
					for (var n, i = 0, a = this.length, o = [], r = gt.test(t) || "string" != typeof t ? lt(t, e || this.context) : 0; a > i; i++)
						for (n = this[i]; n && n !== e; n = n.parentNode)
							if (n.nodeType < 11 && (r ? r.index(n) > -1 : 1 === n.nodeType && lt.find.matchesSelector(n, t))) {
								o.push(n);
								break
							}
					return this.pushStack(o.length > 1 ? lt.unique(o) : o)
				},
				index: function(t) {
					return t ? "string" == typeof t ? lt.inArray(this[0], lt(t)) : lt.inArray(t.jquery ? t[0] : t, this) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1
				},
				add: function(t, e) {
					return this.pushStack(lt.unique(lt.merge(this.get(), lt(t, e))))
				},
				addBack: function(t) {
					return this.add(null == t ? this.prevObject : this.prevObject.filter(t))
				}
			}), lt.each({
				parent: function(t) {
					var e = t.parentNode;
					return e && 11 !== e.nodeType ? e : null
				},
				parents: function(t) {
					return lt.dir(t, "parentNode")
				},
				parentsUntil: function(t, e, n) {
					return lt.dir(t, "parentNode", n)
				},
				next: function(t) {
					return l(t, "nextSibling")
				},
				prev: function(t) {
					return l(t, "previousSibling")
				},
				nextAll: function(t) {
					return lt.dir(t, "nextSibling")
				},
				prevAll: function(t) {
					return lt.dir(t, "previousSibling")
				},
				nextUntil: function(t, e, n) {
					return lt.dir(t, "nextSibling", n)
				},
				prevUntil: function(t, e, n) {
					return lt.dir(t, "previousSibling", n)
				},
				siblings: function(t) {
					return lt.sibling((t.parentNode || {}).firstChild, t)
				},
				children: function(t) {
					return lt.sibling(t.firstChild)
				},
				contents: function(t) {
					return lt.nodeName(t, "iframe") ? t.contentDocument || t.contentWindow.document : lt.merge([], t.childNodes)
				}
			}, function(t, e) {
				lt.fn[t] = function(n, i) {
					var a = lt.map(this, e, n);
					return "Until" !== t.slice(-5) && (i = n), i && "string" == typeof i && (a = lt.filter(i, a)), this.length > 1 && (yt[t] || (a = lt.unique(a)), xt.test(t) && (a = a.reverse())), this.pushStack(a)
				}
			});
			var kt = /\S+/g,
				zt = {};
			lt.Callbacks = function(t) {
				t = "string" == typeof t ? zt[t] || d(t) : lt.extend({}, t);
				var e, n, i, a, o, r, s = [],
					l = !t.once && [],
					c = function(d) {
						for (n = t.memory && d, i = !0, o = r || 0, r = 0, a = s.length, e = !0; s && a > o; o++)
							if (s[o].apply(d[0], d[1]) === !1 && t.stopOnFalse) {
								n = !1;
								break
							}
						e = !1, s && (l ? l.length && c(l.shift()) : n ? s = [] : p.disable())
					},
					p = {
						add: function() {
							if (s) {
								var i = s.length;
								! function o(e) {
									lt.each(e, function(e, n) {
										var i = lt.type(n);
										"function" === i ? t.unique && p.has(n) || s.push(n) : n && n.length && "string" !== i && o(n)
									})
								}(arguments), e ? a = s.length : n && (r = i, c(n))
							}
							return this
						},
						remove: function() {
							return s && lt.each(arguments, function(t, n) {
								for (var i;
									(i = lt.inArray(n, s, i)) > -1;) s.splice(i, 1), e && (a >= i && a--, o >= i && o--)
							}), this
						},
						has: function(t) {
							return t ? lt.inArray(t, s) > -1 : !(!s || !s.length)
						},
						empty: function() {
							return s = [], a = 0, this
						},
						disable: function() {
							return s = l = n = void 0, this
						},
						disabled: function() {
							return !s
						},
						lock: function() {
							return l = void 0, n || p.disable(), this
						},
						locked: function() {
							return !l
						},
						fireWith: function(t, n) {
							return !s || i && !l || (n = n || [], n = [t, n.slice ? n.slice() : n], e ? l.push(n) : c(n)), this
						},
						fire: function() {
							return p.fireWith(this, arguments), this
						},
						fired: function() {
							return !!i
						}
					};
				return p
			}, lt.extend({
				Deferred: function(t) {
					var e = [
							["resolve", "done", lt.Callbacks("once memory"), "resolved"],
							["reject", "fail", lt.Callbacks("once memory"), "rejected"],
							["notify", "progress", lt.Callbacks("memory")]
						],
						n = "pending",
						i = {
							state: function() {
								return n
							},
							always: function() {
								return a.done(arguments).fail(arguments), this
							},
							then: function() {
								var t = arguments;
								return lt.Deferred(function(n) {
									lt.each(e, function(e, o) {
										var r = lt.isFunction(t[e]) && t[e];
										a[o[1]](function() {
											var t = r && r.apply(this, arguments);
											t && lt.isFunction(t.promise) ? t.promise().done(n.resolve).fail(n.reject).progress(n.notify) : n[o[0] + "With"](this === i ? n.promise() : this, r ? [t] : arguments)
										})
									}), t = null
								}).promise()
							},
							promise: function(t) {
								return null != t ? lt.extend(t, i) : i
							}
						},
						a = {};
					return i.pipe = i.then, lt.each(e, function(t, o) {
						var r = o[2],
							s = o[3];
						i[o[1]] = r.add, s && r.add(function() {
							n = s
						}, e[1 ^ t][2].disable, e[2][2].lock), a[o[0]] = function() {
							return a[o[0] + "With"](this === a ? i : this, arguments), this
						}, a[o[0] + "With"] = r.fireWith
					}), i.promise(a), t && t.call(a, a), a
				},
				when: function(t) {
					var e, n, i, a = 0,
						o = Q.call(arguments),
						r = o.length,
						s = 1 !== r || t && lt.isFunction(t.promise) ? r : 0,
						l = 1 === s ? t : lt.Deferred(),
						d = function(t, n, i) {
							return function(a) {
								n[t] = this, i[t] = arguments.length > 1 ? Q.call(arguments) : a, i === e ? l.notifyWith(n, i) : --s || l.resolveWith(n, i)
							}
						};
					if (r > 1)
						for (e = new Array(r), n = new Array(r), i = new Array(r); r > a; a++) o[a] && lt.isFunction(o[a].promise) ? o[a].promise().done(d(a, i, o)).fail(l.reject).progress(d(a, n, e)) : --s;
					return s || l.resolveWith(i, o), l.promise()
				}
			});
			var Ct;
			lt.fn.ready = function(t) {
				return lt.ready.promise().done(t), this
			}, lt.extend({
				isReady: !1,
				readyWait: 1,
				holdReady: function(t) {
					t ? lt.readyWait++ : lt.ready(!0)
				},
				ready: function(t) {
					if (t === !0 ? !--lt.readyWait : !lt.isReady) {
						if (!_t.body) return setTimeout(lt.ready);
						lt.isReady = !0, t !== !0 && --lt.readyWait > 0 || (Ct.resolveWith(_t, [lt]), lt.fn.triggerHandler && (lt(_t).triggerHandler("ready"), lt(_t).off("ready")))
					}
				}
			}), lt.ready.promise = function(t) {
				if (!Ct)
					if (Ct = lt.Deferred(), "complete" === _t.readyState) setTimeout(lt.ready);
					else if (_t.addEventListener) _t.addEventListener("DOMContentLoaded", p, !1), a.addEventListener("load", p, !1);
				else {
					_t.attachEvent("onreadystatechange", p), a.attachEvent("onload", p);
					var e = !1;
					try {
						e = null == a.frameElement && _t.documentElement
					} catch (n) {}
					e && e.doScroll && ! function i() {
						if (!lt.isReady) {
							try {
								e.doScroll("left")
							} catch (t) {
								return setTimeout(i, 50)
							}
							c(), lt.ready()
						}
					}()
				}
				return Ct.promise(t)
			};
			var Tt, St = "undefined";
			for (Tt in lt(rt)) break;
			rt.ownLast = "0" !== Tt, rt.inlineBlockNeedsLayout = !1, lt(function() {
					var t, e, n, i;
					n = _t.getElementsByTagName("body")[0], n && n.style && (e = _t.createElement("div"), i = _t.createElement("div"), i.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px", n.appendChild(i).appendChild(e), typeof e.style.zoom !== St && (e.style.cssText = "display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1", rt.inlineBlockNeedsLayout = t = 3 === e.offsetWidth, t && (n.style.zoom = 1)), n.removeChild(i))
				}),
				function() {
					var t = _t.createElement("div");
					if (null == rt.deleteExpando) {
						rt.deleteExpando = !0;
						try {
							delete t.test
						} catch (e) {
							rt.deleteExpando = !1
						}
					}
					t = null
				}(), lt.acceptData = function(t) {
					var e = lt.noData[(t.nodeName + " ").toLowerCase()],
						n = +t.nodeType || 1;
					return 1 !== n && 9 !== n ? !1 : !e || e !== !0 && t.getAttribute("classid") === e
				};
			var jt = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
				It = /([A-Z])/g;
			lt.extend({
				cache: {},
				noData: {
					"applet ": !0,
					"embed ": !0,
					"object ": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
				},
				hasData: function(t) {
					return t = t.nodeType ? lt.cache[t[lt.expando]] : t[lt.expando], !!t && !u(t)
				},
				data: function(t, e, n) {
					return g(t, e, n)
				},
				removeData: function(t, e) {
					return m(t, e)
				},
				_data: function(t, e, n) {
					return g(t, e, n, !0)
				},
				_removeData: function(t, e) {
					return m(t, e, !0)
				}
			}), lt.fn.extend({
				data: function(t, e) {
					var n, i, a, o = this[0],
						r = o && o.attributes;
					if (void 0 === t) {
						if (this.length && (a = lt.data(o), 1 === o.nodeType && !lt._data(o, "parsedAttrs"))) {
							for (n = r.length; n--;) r[n] && (i = r[n].name, 0 === i.indexOf("data-") && (i = lt.camelCase(i.slice(5)), h(o, i, a[i])));
							lt._data(o, "parsedAttrs", !0)
						}
						return a
					}
					return "object" == typeof t ? this.each(function() {
						lt.data(this, t)
					}) : arguments.length > 1 ? this.each(function() {
						lt.data(this, t, e)
					}) : o ? h(o, t, lt.data(o, t)) : void 0
				},
				removeData: function(t) {
					return this.each(function() {
						lt.removeData(this, t)
					})
				}
			}), lt.extend({
				queue: function(t, e, n) {
					var i;
					return t ? (e = (e || "fx") + "queue", i = lt._data(t, e), n && (!i || lt.isArray(n) ? i = lt._data(t, e, lt.makeArray(n)) : i.push(n)), i || []) : void 0
				},
				dequeue: function(t, e) {
					e = e || "fx";
					var n = lt.queue(t, e),
						i = n.length,
						a = n.shift(),
						o = lt._queueHooks(t, e),
						r = function() {
							lt.dequeue(t, e)
						};
					"inprogress" === a && (a = n.shift(), i--), a && ("fx" === e && n.unshift("inprogress"), delete o.stop, a.call(t, r, o)), !i && o && o.empty.fire()
				},
				_queueHooks: function(t, e) {
					var n = e + "queueHooks";
					return lt._data(t, n) || lt._data(t, n, {
						empty: lt.Callbacks("once memory").add(function() {
							lt._removeData(t, e + "queue"), lt._removeData(t, n)
						})
					})
				}
			}), lt.fn.extend({
				queue: function(t, e) {
					var n = 2;
					return "string" != typeof t && (e = t, t = "fx", n--), arguments.length < n ? lt.queue(this[0], t) : void 0 === e ? this : this.each(function() {
						var n = lt.queue(this, t, e);
						lt._queueHooks(this, t), "fx" === t && "inprogress" !== n[0] && lt.dequeue(this, t)
					})
				},
				dequeue: function(t) {
					return this.each(function() {
						lt.dequeue(this, t)
					})
				},
				clearQueue: function(t) {
					return this.queue(t || "fx", [])
				},
				promise: function(t, e) {
					var n, i = 1,
						a = lt.Deferred(),
						o = this,
						r = this.length,
						s = function() {
							--i || a.resolveWith(o, [o])
						};
					for ("string" != typeof t && (e = t, t = void 0), t = t || "fx"; r--;) n = lt._data(o[r], t + "queueHooks"), n && n.empty && (i++, n.empty.add(s));
					return s(), a.promise(e)
				}
			});
			var Pt = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
				At = ["Top", "Right", "Bottom", "Left"],
				Et = function(t, e) {
					return t = e || t, "none" === lt.css(t, "display") || !lt.contains(t.ownerDocument, t)
				},
				Lt = lt.access = function(t, e, n, i, a, o, r) {
					var s = 0,
						l = t.length,
						d = null == n;
					if ("object" === lt.type(n)) {
						a = !0;
						for (s in n) lt.access(t, e, s, n[s], !0, o, r)
					} else if (void 0 !== i && (a = !0, lt.isFunction(i) || (r = !0), d && (r ? (e.call(t, i), e = null) : (d = e, e = function(t, e, n) {
						return d.call(lt(t), n)
					})), e))
						for (; l > s; s++) e(t[s], n, r ? i : i.call(t[s], s, e(t[s], n)));
					return a ? t : d ? e.call(t) : l ? e(t[0], n) : o
				},
				Ot = /^(?:checkbox|radio)$/i;
			! function() {
				var t = _t.createElement("input"),
					e = _t.createElement("div"),
					n = _t.createDocumentFragment();
				if (e.innerHTML = "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", rt.leadingWhitespace = 3 === e.firstChild.nodeType, rt.tbody = !e.getElementsByTagName("tbody").length, rt.htmlSerialize = !!e.getElementsByTagName("link").length, rt.html5Clone = "<:nav></:nav>" !== _t.createElement("nav").cloneNode(!0).outerHTML, t.type = "checkbox", t.checked = !0, n.appendChild(t), rt.appendChecked = t.checked, e.innerHTML = "<textarea>x</textarea>", rt.noCloneChecked = !!e.cloneNode(!0).lastChild.defaultValue, n.appendChild(e), e.innerHTML = "<input type='radio' checked='checked' name='t'/>", rt.checkClone = e.cloneNode(!0).cloneNode(!0).lastChild.checked, rt.noCloneEvent = !0, e.attachEvent && (e.attachEvent("onclick", function() {
					rt.noCloneEvent = !1
				}), e.cloneNode(!0).click()), null == rt.deleteExpando) {
					rt.deleteExpando = !0;
					try {
						delete e.test
					} catch (i) {
						rt.deleteExpando = !1
					}
				}
			}(),
			function() {
				var t, e, n = _t.createElement("div");
				for (t in {
					submit: !0,
					change: !0,
					focusin: !0
				}) e = "on" + t, (rt[t + "Bubbles"] = e in a) || (n.setAttribute(e, "t"), rt[t + "Bubbles"] = n.attributes[e].expando === !1);
				n = null
			}();
			var Nt = /^(?:input|select|textarea)$/i,
				Dt = /^key/,
				Mt = /^(?:mouse|pointer|contextmenu)|click/,
				qt = /^(?:focusinfocus|focusoutblur)$/,
				Bt = /^([^.]*)(?:\.(.+)|)$/;
			lt.event = {
				global: {},
				add: function(t, e, n, i, a) {
					var o, r, s, l, d, c, p, h, u, g, m, f = lt._data(t);
					if (f) {
						for (n.handler && (l = n, n = l.handler, a = l.selector), n.guid || (n.guid = lt.guid++), (r = f.events) || (r = f.events = {}), (c = f.handle) || (c = f.handle = function(t) {
							return typeof lt === St || t && lt.event.triggered === t.type ? void 0 : lt.event.dispatch.apply(c.elem, arguments)
						}, c.elem = t), e = (e || "").match(kt) || [""], s = e.length; s--;) o = Bt.exec(e[s]) || [], u = m = o[1], g = (o[2] || "").split(".").sort(), u && (d = lt.event.special[u] || {}, u = (a ? d.delegateType : d.bindType) || u, d = lt.event.special[u] || {}, p = lt.extend({
							type: u,
							origType: m,
							data: i,
							handler: n,
							guid: n.guid,
							selector: a,
							needsContext: a && lt.expr.match.needsContext.test(a),
							namespace: g.join(".")
						}, l), (h = r[u]) || (h = r[u] = [], h.delegateCount = 0, d.setup && d.setup.call(t, i, g, c) !== !1 || (t.addEventListener ? t.addEventListener(u, c, !1) : t.attachEvent && t.attachEvent("on" + u, c))), d.add && (d.add.call(t, p), p.handler.guid || (p.handler.guid = n.guid)), a ? h.splice(h.delegateCount++, 0, p) : h.push(p), lt.event.global[u] = !0);
						t = null
					}
				},
				remove: function(t, e, n, i, a) {
					var o, r, s, l, d, c, p, h, u, g, m, f = lt.hasData(t) && lt._data(t);
					if (f && (c = f.events)) {
						for (e = (e || "").match(kt) || [""], d = e.length; d--;)
							if (s = Bt.exec(e[d]) || [], u = m = s[1], g = (s[2] || "").split(".").sort(), u) {
								for (p = lt.event.special[u] || {}, u = (i ? p.delegateType : p.bindType) || u, h = c[u] || [], s = s[2] && new RegExp("(^|\\.)" + g.join("\\.(?:.*\\.|)") + "(\\.|$)"), l = o = h.length; o--;) r = h[o], !a && m !== r.origType || n && n.guid !== r.guid || s && !s.test(r.namespace) || i && i !== r.selector && ("**" !== i || !r.selector) || (h.splice(o, 1), r.selector && h.delegateCount--, p.remove && p.remove.call(t, r));
								l && !h.length && (p.teardown && p.teardown.call(t, g, f.handle) !== !1 || lt.removeEvent(t, u, f.handle), delete c[u])
							} else
								for (u in c) lt.event.remove(t, u + e[d], n, i, !0);
						lt.isEmptyObject(c) && (delete f.handle, lt._removeData(t, "events"))
					}
				},
				trigger: function(t, e, n, i) {
					var o, r, s, l, d, c, p, h = [n || _t],
						u = ot.call(t, "type") ? t.type : t,
						g = ot.call(t, "namespace") ? t.namespace.split(".") : [];
					if (s = c = n = n || _t, 3 !== n.nodeType && 8 !== n.nodeType && !qt.test(u + lt.event.triggered) && (u.indexOf(".") >= 0 && (g = u.split("."), u = g.shift(), g.sort()), r = u.indexOf(":") < 0 && "on" + u, t = t[lt.expando] ? t : new lt.Event(u, "object" == typeof t && t), t.isTrigger = i ? 2 : 3, t.namespace = g.join("."), t.namespace_re = t.namespace ? new RegExp("(^|\\.)" + g.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, t.result = void 0, t.target || (t.target = n), e = null == e ? [t] : lt.makeArray(e, [t]), d = lt.event.special[u] || {}, i || !d.trigger || d.trigger.apply(n, e) !== !1)) {
						if (!i && !d.noBubble && !lt.isWindow(n)) {
							for (l = d.delegateType || u, qt.test(l + u) || (s = s.parentNode); s; s = s.parentNode) h.push(s), c = s;
							c === (n.ownerDocument || _t) && h.push(c.defaultView || c.parentWindow || a)
						}
						for (p = 0;
							(s = h[p++]) && !t.isPropagationStopped();) t.type = p > 1 ? l : d.bindType || u, o = (lt._data(s, "events") || {})[t.type] && lt._data(s, "handle"), o && o.apply(s, e), o = r && s[r], o && o.apply && lt.acceptData(s) && (t.result = o.apply(s, e), t.result === !1 && t.preventDefault());
						if (t.type = u, !i && !t.isDefaultPrevented() && (!d._default || d._default.apply(h.pop(), e) === !1) && lt.acceptData(n) && r && n[u] && !lt.isWindow(n)) {
							c = n[r], c && (n[r] = null), lt.event.triggered = u;
							try {
								n[u]()
							} catch (m) {}
							lt.event.triggered = void 0, c && (n[r] = c)
						}
						return t.result
					}
				},
				dispatch: function(t) {
					t = lt.event.fix(t);
					var e, n, i, a, o, r = [],
						s = Q.call(arguments),
						l = (lt._data(this, "events") || {})[t.type] || [],
						d = lt.event.special[t.type] || {};
					if (s[0] = t, t.delegateTarget = this, !d.preDispatch || d.preDispatch.call(this, t) !== !1) {
						for (r = lt.event.handlers.call(this, t, l), e = 0;
							(a = r[e++]) && !t.isPropagationStopped();)
							for (t.currentTarget = a.elem, o = 0;
								(i = a.handlers[o++]) && !t.isImmediatePropagationStopped();)(!t.namespace_re || t.namespace_re.test(i.namespace)) && (t.handleObj = i, t.data = i.data, n = ((lt.event.special[i.origType] || {}).handle || i.handler).apply(a.elem, s), void 0 !== n && (t.result = n) === !1 && (t.preventDefault(), t.stopPropagation()));
						return d.postDispatch && d.postDispatch.call(this, t), t.result
					}
				},
				handlers: function(t, e) {
					var n, i, a, o, r = [],
						s = e.delegateCount,
						l = t.target;
					if (s && l.nodeType && (!t.button || "click" !== t.type))
						for (; l != this; l = l.parentNode || this)
							if (1 === l.nodeType && (l.disabled !== !0 || "click" !== t.type)) {
								for (a = [], o = 0; s > o; o++) i = e[o], n = i.selector + " ", void 0 === a[n] && (a[n] = i.needsContext ? lt(n, this).index(l) >= 0 : lt.find(n, this, null, [l]).length), a[n] && a.push(i);
								a.length && r.push({
									elem: l,
									handlers: a
								})
							}
					return s < e.length && r.push({
						elem: this,
						handlers: e.slice(s)
					}), r
				},
				fix: function(t) {
					if (t[lt.expando]) return t;
					var e, n, i, a = t.type,
						o = t,
						r = this.fixHooks[a];
					for (r || (this.fixHooks[a] = r = Mt.test(a) ? this.mouseHooks : Dt.test(a) ? this.keyHooks : {}), i = r.props ? this.props.concat(r.props) : this.props, t = new lt.Event(o), e = i.length; e--;) n = i[e], t[n] = o[n];
					return t.target || (t.target = o.srcElement || _t), 3 === t.target.nodeType && (t.target = t.target.parentNode), t.metaKey = !!t.metaKey, r.filter ? r.filter(t, o) : t
				},
				props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
				fixHooks: {},
				keyHooks: {
					props: "char charCode key keyCode".split(" "),
					filter: function(t, e) {
						return null == t.which && (t.which = null != e.charCode ? e.charCode : e.keyCode), t
					}
				},
				mouseHooks: {
					props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
					filter: function(t, e) {
						var n, i, a, o = e.button,
							r = e.fromElement;
						return null == t.pageX && null != e.clientX && (i = t.target.ownerDocument || _t, a = i.documentElement, n = i.body, t.pageX = e.clientX + (a && a.scrollLeft || n && n.scrollLeft || 0) - (a && a.clientLeft || n && n.clientLeft || 0), t.pageY = e.clientY + (a && a.scrollTop || n && n.scrollTop || 0) - (a && a.clientTop || n && n.clientTop || 0)), !t.relatedTarget && r && (t.relatedTarget = r === t.target ? e.toElement : r), t.which || void 0 === o || (t.which = 1 & o ? 1 : 2 & o ? 3 : 4 & o ? 2 : 0), t
					}
				},
				special: {
					load: {
						noBubble: !0
					},
					focus: {
						trigger: function() {
							if (this !== _() && this.focus) try {
								return this.focus(), !1
							} catch (t) {}
						},
						delegateType: "focusin"
					},
					blur: {
						trigger: function() {
							return this === _() && this.blur ? (this.blur(), !1) : void 0
						},
						delegateType: "focusout"
					},
					click: {
						trigger: function() {
							return lt.nodeName(this, "input") && "checkbox" === this.type && this.click ? (this.click(), !1) : void 0
						},
						_default: function(t) {
							return lt.nodeName(t.target, "a")
						}
					},
					beforeunload: {
						postDispatch: function(t) {
							void 0 !== t.result && t.originalEvent && (t.originalEvent.returnValue = t.result)
						}
					}
				},
				simulate: function(t, e, n, i) {
					var a = lt.extend(new lt.Event, n, {
						type: t,
						isSimulated: !0,
						originalEvent: {}
					});
					i ? lt.event.trigger(a, null, e) : lt.event.dispatch.call(e, a), a.isDefaultPrevented() && n.preventDefault()
				}
			}, lt.removeEvent = _t.removeEventListener ? function(t, e, n) {
				t.removeEventListener && t.removeEventListener(e, n, !1)
			} : function(t, e, n) {
				var i = "on" + e;
				t.detachEvent && (typeof t[i] === St && (t[i] = null), t.detachEvent(i, n))
			}, lt.Event = function(t, e) {
				return this instanceof lt.Event ? (t && t.type ? (this.originalEvent = t, this.type = t.type, this.isDefaultPrevented = t.defaultPrevented || void 0 === t.defaultPrevented && t.returnValue === !1 ? f : w) : this.type = t, e && lt.extend(this, e), this.timeStamp = t && t.timeStamp || lt.now(), void(this[lt.expando] = !0)) : new lt.Event(t, e)
			}, lt.Event.prototype = {
				isDefaultPrevented: w,
				isPropagationStopped: w,
				isImmediatePropagationStopped: w,
				preventDefault: function() {
					var t = this.originalEvent;
					this.isDefaultPrevented = f, t && (t.preventDefault ? t.preventDefault() : t.returnValue = !1)
				},
				stopPropagation: function() {
					var t = this.originalEvent;
					this.isPropagationStopped = f, t && (t.stopPropagation && t.stopPropagation(), t.cancelBubble = !0)
				},
				stopImmediatePropagation: function() {
					var t = this.originalEvent;
					this.isImmediatePropagationStopped = f, t && t.stopImmediatePropagation && t.stopImmediatePropagation(), this.stopPropagation()
				}
			}, lt.each({
				mouseenter: "mouseover",
				mouseleave: "mouseout",
				pointerenter: "pointerover",
				pointerleave: "pointerout"
			}, function(t, e) {
				lt.event.special[t] = {
					delegateType: e,
					bindType: e,
					handle: function(t) {
						var n, i = this,
							a = t.relatedTarget,
							o = t.handleObj;
						return (!a || a !== i && !lt.contains(i, a)) && (t.type = o.origType, n = o.handler.apply(this, arguments), t.type = e), n
					}
				}
			}), rt.submitBubbles || (lt.event.special.submit = {
				setup: function() {
					return lt.nodeName(this, "form") ? !1 : void lt.event.add(this, "click._submit keypress._submit", function(t) {
						var e = t.target,
							n = lt.nodeName(e, "input") || lt.nodeName(e, "button") ? e.form : void 0;
						n && !lt._data(n, "submitBubbles") && (lt.event.add(n, "submit._submit", function(t) {
							t._submit_bubble = !0
						}), lt._data(n, "submitBubbles", !0))
					})
				},
				postDispatch: function(t) {
					t._submit_bubble && (delete t._submit_bubble, this.parentNode && !t.isTrigger && lt.event.simulate("submit", this.parentNode, t, !0))
				},
				teardown: function() {
					return lt.nodeName(this, "form") ? !1 : void lt.event.remove(this, "._submit")
				}
			}), rt.changeBubbles || (lt.event.special.change = {
				setup: function() {
					return Nt.test(this.nodeName) ? (("checkbox" === this.type || "radio" === this.type) && (lt.event.add(this, "propertychange._change", function(t) {
						"checked" === t.originalEvent.propertyName && (this._just_changed = !0)
					}), lt.event.add(this, "click._change", function(t) {
						this._just_changed && !t.isTrigger && (this._just_changed = !1), lt.event.simulate("change", this, t, !0)
					})), !1) : void lt.event.add(this, "beforeactivate._change", function(t) {
						var e = t.target;
						Nt.test(e.nodeName) && !lt._data(e, "changeBubbles") && (lt.event.add(e, "change._change", function(t) {
							!this.parentNode || t.isSimulated || t.isTrigger || lt.event.simulate("change", this.parentNode, t, !0)
						}), lt._data(e, "changeBubbles", !0))
					})
				},
				handle: function(t) {
					var e = t.target;
					return this !== e || t.isSimulated || t.isTrigger || "radio" !== e.type && "checkbox" !== e.type ? t.handleObj.handler.apply(this, arguments) : void 0
				},
				teardown: function() {
					return lt.event.remove(this, "._change"), !Nt.test(this.nodeName)
				}
			}), rt.focusinBubbles || lt.each({
				focus: "focusin",
				blur: "focusout"
			}, function(t, e) {
				var n = function(t) {
					lt.event.simulate(e, t.target, lt.event.fix(t), !0)
				};
				lt.event.special[e] = {
					setup: function() {
						var i = this.ownerDocument || this,
							a = lt._data(i, e);
						a || i.addEventListener(t, n, !0), lt._data(i, e, (a || 0) + 1)
					},
					teardown: function() {
						var i = this.ownerDocument || this,
							a = lt._data(i, e) - 1;
						a ? lt._data(i, e, a) : (i.removeEventListener(t, n, !0), lt._removeData(i, e))
					}
				}
			}), lt.fn.extend({
				on: function(t, e, n, i, a) {
					var o, r;
					if ("object" == typeof t) {
						"string" != typeof e && (n = n || e, e = void 0);
						for (o in t) this.on(o, e, n, t[o], a);
						return this
					}
					if (null == n && null == i ? (i = e, n = e = void 0) : null == i && ("string" == typeof e ? (i = n, n = void 0) : (i = n, n = e, e = void 0)), i === !1) i = w;
					else if (!i) return this;
					return 1 === a && (r = i, i = function(t) {
						return lt().off(t), r.apply(this, arguments)
					}, i.guid = r.guid || (r.guid = lt.guid++)), this.each(function() {
						lt.event.add(this, t, i, n, e)
					})
				},
				one: function(t, e, n, i) {
					return this.on(t, e, n, i, 1)
				},
				off: function(t, e, n) {
					var i, a;
					if (t && t.preventDefault && t.handleObj) return i = t.handleObj, lt(t.delegateTarget).off(i.namespace ? i.origType + "." + i.namespace : i.origType, i.selector, i.handler), this;
					if ("object" == typeof t) {
						for (a in t) this.off(a, e, t[a]);
						return this
					}
					return (e === !1 || "function" == typeof e) && (n = e, e = void 0), n === !1 && (n = w), this.each(function() {
						lt.event.remove(this, t, n, e)
					})
				},
				trigger: function(t, e) {
					return this.each(function() {
						lt.event.trigger(t, e, this)
					})
				},
				triggerHandler: function(t, e) {
					var n = this[0];
					return n ? lt.event.trigger(t, e, n, !0) : void 0
				}
			});
			var Rt = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",
				Wt = / jQuery\d+="(?:null|\d+)"/g,
				Ft = new RegExp("<(?:" + Rt + ")[\\s/>]", "i"),
				Ht = /^\s+/,
				$t = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,
				Xt = /<([\w:]+)/,
				Ut = /<tbody/i,
				Gt = /<|&#?\w+;/,
				Yt = /<(?:script|style|link)/i,
				Vt = /checked\s*(?:[^=]|=\s*.checked.)/i,
				Jt = /^$|\/(?:java|ecma)script/i,
				Zt = /^true\/(.*)/,
				Kt = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,
				Qt = {
					option: [1, "<select multiple='multiple'>", "</select>"],
					legend: [1, "<fieldset>", "</fieldset>"],
					area: [1, "<map>", "</map>"],
					param: [1, "<object>", "</object>"],
					thead: [1, "<table>", "</table>"],
					tr: [2, "<table><tbody>", "</tbody></table>"],
					col: [2, "<table><tbody></tbody><colgroup>", "</colgroup></table>"],
					td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
					_default: rt.htmlSerialize ? [0, "", ""] : [1, "X<div>", "</div>"]
				},
				te = v(_t),
				ee = te.appendChild(_t.createElement("div"));
			Qt.optgroup = Qt.option, Qt.tbody = Qt.tfoot = Qt.colgroup = Qt.caption = Qt.thead, Qt.th = Qt.td, lt.extend({
				clone: function(t, e, n) {
					var i, a, o, r, s, l = lt.contains(t.ownerDocument, t);
					if (rt.html5Clone || lt.isXMLDoc(t) || !Ft.test("<" + t.nodeName + ">") ? o = t.cloneNode(!0) : (ee.innerHTML = t.outerHTML, ee.removeChild(o = ee.firstChild)), !(rt.noCloneEvent && rt.noCloneChecked || 1 !== t.nodeType && 11 !== t.nodeType || lt.isXMLDoc(t)))
						for (i = b(o), s = b(t), r = 0; null != (a = s[r]); ++r) i[r] && S(a, i[r]);
					if (e)
						if (n)
							for (s = s || b(t), i = i || b(o), r = 0; null != (a = s[r]); r++) T(a, i[r]);
						else T(t, o);
					return i = b(o, "script"), i.length > 0 && C(i, !l && b(t, "script")), i = s = a = null, o
				},
				buildFragment: function(t, e, n, i) {
					for (var a, o, r, s, l, d, c, p = t.length, h = v(e), u = [], g = 0; p > g; g++)
						if (o = t[g], o || 0 === o)
							if ("object" === lt.type(o)) lt.merge(u, o.nodeType ? [o] : o);
							else if (Gt.test(o)) {
						for (s = s || h.appendChild(e.createElement("div")), l = (Xt.exec(o) || ["", ""])[1].toLowerCase(), c = Qt[l] || Qt._default, s.innerHTML = c[1] + o.replace($t, "<$1></$2>") + c[2], a = c[0]; a--;) s = s.lastChild;
						if (!rt.leadingWhitespace && Ht.test(o) && u.push(e.createTextNode(Ht.exec(o)[0])), !rt.tbody)
							for (o = "table" !== l || Ut.test(o) ? "<table>" !== c[1] || Ut.test(o) ? 0 : s : s.firstChild,
								a = o && o.childNodes.length; a--;) lt.nodeName(d = o.childNodes[a], "tbody") && !d.childNodes.length && o.removeChild(d);
						for (lt.merge(u, s.childNodes), s.textContent = ""; s.firstChild;) s.removeChild(s.firstChild);
						s = h.lastChild
					} else u.push(e.createTextNode(o));
					for (s && h.removeChild(s), rt.appendChecked || lt.grep(b(u, "input"), x), g = 0; o = u[g++];)
						if ((!i || -1 === lt.inArray(o, i)) && (r = lt.contains(o.ownerDocument, o), s = b(h.appendChild(o), "script"), r && C(s), n))
							for (a = 0; o = s[a++];) Jt.test(o.type || "") && n.push(o);
					return s = null, h
				},
				cleanData: function(t, e) {
					for (var n, i, a, o, r = 0, s = lt.expando, l = lt.cache, d = rt.deleteExpando, c = lt.event.special; null != (n = t[r]); r++)
						if ((e || lt.acceptData(n)) && (a = n[s], o = a && l[a])) {
							if (o.events)
								for (i in o.events) c[i] ? lt.event.remove(n, i) : lt.removeEvent(n, i, o.handle);
							l[a] && (delete l[a], d ? delete n[s] : typeof n.removeAttribute !== St ? n.removeAttribute(s) : n[s] = null, K.push(a))
						}
				}
			}), lt.fn.extend({
				text: function(t) {
					return Lt(this, function(t) {
						return void 0 === t ? lt.text(this) : this.empty().append((this[0] && this[0].ownerDocument || _t).createTextNode(t))
					}, null, t, arguments.length)
				},
				append: function() {
					return this.domManip(arguments, function(t) {
						if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
							var e = y(this, t);
							e.appendChild(t)
						}
					})
				},
				prepend: function() {
					return this.domManip(arguments, function(t) {
						if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
							var e = y(this, t);
							e.insertBefore(t, e.firstChild)
						}
					})
				},
				before: function() {
					return this.domManip(arguments, function(t) {
						this.parentNode && this.parentNode.insertBefore(t, this)
					})
				},
				after: function() {
					return this.domManip(arguments, function(t) {
						this.parentNode && this.parentNode.insertBefore(t, this.nextSibling)
					})
				},
				remove: function(t, e) {
					for (var n, i = t ? lt.filter(t, this) : this, a = 0; null != (n = i[a]); a++) e || 1 !== n.nodeType || lt.cleanData(b(n)), n.parentNode && (e && lt.contains(n.ownerDocument, n) && C(b(n, "script")), n.parentNode.removeChild(n));
					return this
				},
				empty: function() {
					for (var t, e = 0; null != (t = this[e]); e++) {
						for (1 === t.nodeType && lt.cleanData(b(t, !1)); t.firstChild;) t.removeChild(t.firstChild);
						t.options && lt.nodeName(t, "select") && (t.options.length = 0)
					}
					return this
				},
				clone: function(t, e) {
					return t = null == t ? !1 : t, e = null == e ? t : e, this.map(function() {
						return lt.clone(this, t, e)
					})
				},
				html: function(t) {
					return Lt(this, function(t) {
						var e = this[0] || {},
							n = 0,
							i = this.length;
						if (void 0 === t) return 1 === e.nodeType ? e.innerHTML.replace(Wt, "") : void 0;
						if (!("string" != typeof t || Yt.test(t) || !rt.htmlSerialize && Ft.test(t) || !rt.leadingWhitespace && Ht.test(t) || Qt[(Xt.exec(t) || ["", ""])[1].toLowerCase()])) {
							t = t.replace($t, "<$1></$2>");
							try {
								for (; i > n; n++) e = this[n] || {}, 1 === e.nodeType && (lt.cleanData(b(e, !1)), e.innerHTML = t);
								e = 0
							} catch (a) {}
						}
						e && this.empty().append(t)
					}, null, t, arguments.length)
				},
				replaceWith: function() {
					var t = arguments[0];
					return this.domManip(arguments, function(e) {
						t = this.parentNode, lt.cleanData(b(this)), t && t.replaceChild(e, this)
					}), t && (t.length || t.nodeType) ? this : this.remove()
				},
				detach: function(t) {
					return this.remove(t, !0)
				},
				domManip: function(t, e) {
					t = tt.apply([], t);
					var n, i, a, o, r, s, l = 0,
						d = this.length,
						c = this,
						p = d - 1,
						h = t[0],
						u = lt.isFunction(h);
					if (u || d > 1 && "string" == typeof h && !rt.checkClone && Vt.test(h)) return this.each(function(n) {
						var i = c.eq(n);
						u && (t[0] = h.call(this, n, i.html())), i.domManip(t, e)
					});
					if (d && (s = lt.buildFragment(t, this[0].ownerDocument, !1, this), n = s.firstChild, 1 === s.childNodes.length && (s = n), n)) {
						for (o = lt.map(b(s, "script"), k), a = o.length; d > l; l++) i = s, l !== p && (i = lt.clone(i, !0, !0), a && lt.merge(o, b(i, "script"))), e.call(this[l], i, l);
						if (a)
							for (r = o[o.length - 1].ownerDocument, lt.map(o, z), l = 0; a > l; l++) i = o[l], Jt.test(i.type || "") && !lt._data(i, "globalEval") && lt.contains(r, i) && (i.src ? lt._evalUrl && lt._evalUrl(i.src) : lt.globalEval((i.text || i.textContent || i.innerHTML || "").replace(Kt, "")));
						s = n = null
					}
					return this
				}
			}), lt.each({
				appendTo: "append",
				prependTo: "prepend",
				insertBefore: "before",
				insertAfter: "after",
				replaceAll: "replaceWith"
			}, function(t, e) {
				lt.fn[t] = function(t) {
					for (var n, i = 0, a = [], o = lt(t), r = o.length - 1; r >= i; i++) n = i === r ? this : this.clone(!0), lt(o[i])[e](n), et.apply(a, n.get());
					return this.pushStack(a)
				}
			});
			var ne, ie = {};
			! function() {
				var t;
				rt.shrinkWrapBlocks = function() {
					if (null != t) return t;
					t = !1;
					var e, n, i;
					return n = _t.getElementsByTagName("body")[0], n && n.style ? (e = _t.createElement("div"), i = _t.createElement("div"), i.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px", n.appendChild(i).appendChild(e), typeof e.style.zoom !== St && (e.style.cssText = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1", e.appendChild(_t.createElement("div")).style.width = "5px", t = 3 !== e.offsetWidth), n.removeChild(i), t) : void 0
				}
			}();
			var ae, oe, re = /^margin/,
				se = new RegExp("^(" + Pt + ")(?!px)[a-z%]+$", "i"),
				le = /^(top|right|bottom|left)$/;
			a.getComputedStyle ? (ae = function(t) {
					return t.ownerDocument.defaultView.opener ? t.ownerDocument.defaultView.getComputedStyle(t, null) : a.getComputedStyle(t, null)
				}, oe = function(t, e, n) {
					var i, a, o, r, s = t.style;
					return n = n || ae(t), r = n ? n.getPropertyValue(e) || n[e] : void 0, n && ("" !== r || lt.contains(t.ownerDocument, t) || (r = lt.style(t, e)), se.test(r) && re.test(e) && (i = s.width, a = s.minWidth, o = s.maxWidth, s.minWidth = s.maxWidth = s.width = r, r = n.width, s.width = i, s.minWidth = a, s.maxWidth = o)), void 0 === r ? r : r + ""
				}) : _t.documentElement.currentStyle && (ae = function(t) {
					return t.currentStyle
				}, oe = function(t, e, n) {
					var i, a, o, r, s = t.style;
					return n = n || ae(t), r = n ? n[e] : void 0, null == r && s && s[e] && (r = s[e]), se.test(r) && !le.test(e) && (i = s.left, a = t.runtimeStyle, o = a && a.left, o && (a.left = t.currentStyle.left), s.left = "fontSize" === e ? "1em" : r, r = s.pixelLeft + "px", s.left = i, o && (a.left = o)), void 0 === r ? r : r + "" || "auto"
				}),
				function() {
					function t() {
						var t, e, n, i;
						e = _t.getElementsByTagName("body")[0], e && e.style && (t = _t.createElement("div"), n = _t.createElement("div"), n.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px", e.appendChild(n).appendChild(t), t.style.cssText = "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute", o = r = !1, l = !0, a.getComputedStyle && (o = "1%" !== (a.getComputedStyle(t, null) || {}).top, r = "4px" === (a.getComputedStyle(t, null) || {
							width: "4px"
						}).width, i = t.appendChild(_t.createElement("div")), i.style.cssText = t.style.cssText = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0", i.style.marginRight = i.style.width = "0", t.style.width = "1px", l = !parseFloat((a.getComputedStyle(i, null) || {}).marginRight), t.removeChild(i)), t.innerHTML = "<table><tr><td></td><td>t</td></tr></table>", i = t.getElementsByTagName("td"), i[0].style.cssText = "margin:0;border:0;padding:0;display:none", s = 0 === i[0].offsetHeight, s && (i[0].style.display = "", i[1].style.display = "none", s = 0 === i[0].offsetHeight), e.removeChild(n))
					}
					var e, n, i, o, r, s, l;
					e = _t.createElement("div"), e.innerHTML = "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", i = e.getElementsByTagName("a")[0], n = i && i.style, n && (n.cssText = "float:left;opacity:.5", rt.opacity = "0.5" === n.opacity, rt.cssFloat = !!n.cssFloat, e.style.backgroundClip = "content-box", e.cloneNode(!0).style.backgroundClip = "", rt.clearCloneStyle = "content-box" === e.style.backgroundClip, rt.boxSizing = "" === n.boxSizing || "" === n.MozBoxSizing || "" === n.WebkitBoxSizing, lt.extend(rt, {
						reliableHiddenOffsets: function() {
							return null == s && t(), s
						},
						boxSizingReliable: function() {
							return null == r && t(), r
						},
						pixelPosition: function() {
							return null == o && t(), o
						},
						reliableMarginRight: function() {
							return null == l && t(), l
						}
					}))
				}(), lt.swap = function(t, e, n, i) {
					var a, o, r = {};
					for (o in e) r[o] = t.style[o], t.style[o] = e[o];
					a = n.apply(t, i || []);
					for (o in e) t.style[o] = r[o];
					return a
				};
			var de = /alpha\([^)]*\)/i,
				ce = /opacity\s*=\s*([^)]*)/,
				pe = /^(none|table(?!-c[ea]).+)/,
				he = new RegExp("^(" + Pt + ")(.*)$", "i"),
				ue = new RegExp("^([+-])=(" + Pt + ")", "i"),
				ge = {
					position: "absolute",
					visibility: "hidden",
					display: "block"
				},
				me = {
					letterSpacing: "0",
					fontWeight: "400"
				},
				fe = ["Webkit", "O", "Moz", "ms"];
			lt.extend({
				cssHooks: {
					opacity: {
						get: function(t, e) {
							if (e) {
								var n = oe(t, "opacity");
								return "" === n ? "1" : n
							}
						}
					}
				},
				cssNumber: {
					columnCount: !0,
					fillOpacity: !0,
					flexGrow: !0,
					flexShrink: !0,
					fontWeight: !0,
					lineHeight: !0,
					opacity: !0,
					order: !0,
					orphans: !0,
					widows: !0,
					zIndex: !0,
					zoom: !0
				},
				cssProps: {
					"float": rt.cssFloat ? "cssFloat" : "styleFloat"
				},
				style: function(t, e, n, i) {
					if (t && 3 !== t.nodeType && 8 !== t.nodeType && t.style) {
						var a, o, r, s = lt.camelCase(e),
							l = t.style;
						if (e = lt.cssProps[s] || (lt.cssProps[s] = A(l, s)), r = lt.cssHooks[e] || lt.cssHooks[s], void 0 === n) return r && "get" in r && void 0 !== (a = r.get(t, !1, i)) ? a : l[e];
						if (o = typeof n, "string" === o && (a = ue.exec(n)) && (n = (a[1] + 1) * a[2] + parseFloat(lt.css(t, e)), o = "number"), null != n && n === n && ("number" !== o || lt.cssNumber[s] || (n += "px"), rt.clearCloneStyle || "" !== n || 0 !== e.indexOf("background") || (l[e] = "inherit"), !(r && "set" in r && void 0 === (n = r.set(t, n, i))))) try {
							l[e] = n
						} catch (d) {}
					}
				},
				css: function(t, e, n, i) {
					var a, o, r, s = lt.camelCase(e);
					return e = lt.cssProps[s] || (lt.cssProps[s] = A(t.style, s)), r = lt.cssHooks[e] || lt.cssHooks[s], r && "get" in r && (o = r.get(t, !0, n)), void 0 === o && (o = oe(t, e, i)), "normal" === o && e in me && (o = me[e]), "" === n || n ? (a = parseFloat(o), n === !0 || lt.isNumeric(a) ? a || 0 : o) : o
				}
			}), lt.each(["height", "width"], function(t, e) {
				lt.cssHooks[e] = {
					get: function(t, n, i) {
						return n ? pe.test(lt.css(t, "display")) && 0 === t.offsetWidth ? lt.swap(t, ge, function() {
							return N(t, e, i)
						}) : N(t, e, i) : void 0
					},
					set: function(t, n, i) {
						var a = i && ae(t);
						return L(t, n, i ? O(t, e, i, rt.boxSizing && "border-box" === lt.css(t, "boxSizing", !1, a), a) : 0)
					}
				}
			}), rt.opacity || (lt.cssHooks.opacity = {
				get: function(t, e) {
					return ce.test((e && t.currentStyle ? t.currentStyle.filter : t.style.filter) || "") ? .01 * parseFloat(RegExp.$1) + "" : e ? "1" : ""
				},
				set: function(t, e) {
					var n = t.style,
						i = t.currentStyle,
						a = lt.isNumeric(e) ? "alpha(opacity=" + 100 * e + ")" : "",
						o = i && i.filter || n.filter || "";
					n.zoom = 1, (e >= 1 || "" === e) && "" === lt.trim(o.replace(de, "")) && n.removeAttribute && (n.removeAttribute("filter"), "" === e || i && !i.filter) || (n.filter = de.test(o) ? o.replace(de, a) : o + " " + a)
				}
			}), lt.cssHooks.marginRight = P(rt.reliableMarginRight, function(t, e) {
				return e ? lt.swap(t, {
					display: "inline-block"
				}, oe, [t, "marginRight"]) : void 0
			}), lt.each({
				margin: "",
				padding: "",
				border: "Width"
			}, function(t, e) {
				lt.cssHooks[t + e] = {
					expand: function(n) {
						for (var i = 0, a = {}, o = "string" == typeof n ? n.split(" ") : [n]; 4 > i; i++) a[t + At[i] + e] = o[i] || o[i - 2] || o[0];
						return a
					}
				}, re.test(t) || (lt.cssHooks[t + e].set = L)
			}), lt.fn.extend({
				css: function(t, e) {
					return Lt(this, function(t, e, n) {
						var i, a, o = {},
							r = 0;
						if (lt.isArray(e)) {
							for (i = ae(t), a = e.length; a > r; r++) o[e[r]] = lt.css(t, e[r], !1, i);
							return o
						}
						return void 0 !== n ? lt.style(t, e, n) : lt.css(t, e)
					}, t, e, arguments.length > 1)
				},
				show: function() {
					return E(this, !0)
				},
				hide: function() {
					return E(this)
				},
				toggle: function(t) {
					return "boolean" == typeof t ? t ? this.show() : this.hide() : this.each(function() {
						Et(this) ? lt(this).show() : lt(this).hide()
					})
				}
			}), lt.Tween = D, D.prototype = {
				constructor: D,
				init: function(t, e, n, i, a, o) {
					this.elem = t, this.prop = n, this.easing = a || "swing", this.options = e, this.start = this.now = this.cur(), this.end = i, this.unit = o || (lt.cssNumber[n] ? "" : "px")
				},
				cur: function() {
					var t = D.propHooks[this.prop];
					return t && t.get ? t.get(this) : D.propHooks._default.get(this)
				},
				run: function(t) {
					var e, n = D.propHooks[this.prop];
					return this.pos = e = this.options.duration ? lt.easing[this.easing](t, this.options.duration * t, 0, 1, this.options.duration) : t, this.now = (this.end - this.start) * e + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), n && n.set ? n.set(this) : D.propHooks._default.set(this), this
				}
			}, D.prototype.init.prototype = D.prototype, D.propHooks = {
				_default: {
					get: function(t) {
						var e;
						return null == t.elem[t.prop] || t.elem.style && null != t.elem.style[t.prop] ? (e = lt.css(t.elem, t.prop, ""), e && "auto" !== e ? e : 0) : t.elem[t.prop]
					},
					set: function(t) {
						lt.fx.step[t.prop] ? lt.fx.step[t.prop](t) : t.elem.style && (null != t.elem.style[lt.cssProps[t.prop]] || lt.cssHooks[t.prop]) ? lt.style(t.elem, t.prop, t.now + t.unit) : t.elem[t.prop] = t.now
					}
				}
			}, D.propHooks.scrollTop = D.propHooks.scrollLeft = {
				set: function(t) {
					t.elem.nodeType && t.elem.parentNode && (t.elem[t.prop] = t.now)
				}
			}, lt.easing = {
				linear: function(t) {
					return t
				},
				swing: function(t) {
					return .5 - Math.cos(t * Math.PI) / 2
				}
			}, lt.fx = D.prototype.init, lt.fx.step = {};
			var we, _e, ve = /^(?:toggle|show|hide)$/,
				be = new RegExp("^(?:([+-])=|)(" + Pt + ")([a-z%]*)$", "i"),
				xe = /queueHooks$/,
				ye = [R],
				ke = {
					"*": [
						function(t, e) {
							var n = this.createTween(t, e),
								i = n.cur(),
								a = be.exec(e),
								o = a && a[3] || (lt.cssNumber[t] ? "" : "px"),
								r = (lt.cssNumber[t] || "px" !== o && +i) && be.exec(lt.css(n.elem, t)),
								s = 1,
								l = 20;
							if (r && r[3] !== o) {
								o = o || r[3], a = a || [], r = +i || 1;
								do s = s || ".5", r /= s, lt.style(n.elem, t, r + o); while (s !== (s = n.cur() / i) && 1 !== s && --l)
							}
							return a && (r = n.start = +r || +i || 0, n.unit = o, n.end = a[1] ? r + (a[1] + 1) * a[2] : +a[2]), n
						}
					]
				};
			lt.Animation = lt.extend(F, {
					tweener: function(t, e) {
						lt.isFunction(t) ? (e = t, t = ["*"]) : t = t.split(" ");
						for (var n, i = 0, a = t.length; a > i; i++) n = t[i], ke[n] = ke[n] || [], ke[n].unshift(e)
					},
					prefilter: function(t, e) {
						e ? ye.unshift(t) : ye.push(t)
					}
				}), lt.speed = function(t, e, n) {
					var i = t && "object" == typeof t ? lt.extend({}, t) : {
						complete: n || !n && e || lt.isFunction(t) && t,
						duration: t,
						easing: n && e || e && !lt.isFunction(e) && e
					};
					return i.duration = lt.fx.off ? 0 : "number" == typeof i.duration ? i.duration : i.duration in lt.fx.speeds ? lt.fx.speeds[i.duration] : lt.fx.speeds._default, (null == i.queue || i.queue === !0) && (i.queue = "fx"), i.old = i.complete, i.complete = function() {
						lt.isFunction(i.old) && i.old.call(this), i.queue && lt.dequeue(this, i.queue)
					}, i
				}, lt.fn.extend({
					fadeTo: function(t, e, n, i) {
						return this.filter(Et).css("opacity", 0).show().end().animate({
							opacity: e
						}, t, n, i)
					},
					animate: function(t, e, n, i) {
						var a = lt.isEmptyObject(t),
							o = lt.speed(e, n, i),
							r = function() {
								var e = F(this, lt.extend({}, t), o);
								(a || lt._data(this, "finish")) && e.stop(!0)
							};
						return r.finish = r, a || o.queue === !1 ? this.each(r) : this.queue(o.queue, r)
					},
					stop: function(t, e, n) {
						var i = function(t) {
							var e = t.stop;
							delete t.stop, e(n)
						};
						return "string" != typeof t && (n = e, e = t, t = void 0), e && t !== !1 && this.queue(t || "fx", []), this.each(function() {
							var e = !0,
								a = null != t && t + "queueHooks",
								o = lt.timers,
								r = lt._data(this);
							if (a) r[a] && r[a].stop && i(r[a]);
							else
								for (a in r) r[a] && r[a].stop && xe.test(a) && i(r[a]);
							for (a = o.length; a--;) o[a].elem !== this || null != t && o[a].queue !== t || (o[a].anim.stop(n), e = !1, o.splice(a, 1));
							(e || !n) && lt.dequeue(this, t)
						})
					},
					finish: function(t) {
						return t !== !1 && (t = t || "fx"), this.each(function() {
							var e, n = lt._data(this),
								i = n[t + "queue"],
								a = n[t + "queueHooks"],
								o = lt.timers,
								r = i ? i.length : 0;
							for (n.finish = !0, lt.queue(this, t, []), a && a.stop && a.stop.call(this, !0), e = o.length; e--;) o[e].elem === this && o[e].queue === t && (o[e].anim.stop(!0), o.splice(e, 1));
							for (e = 0; r > e; e++) i[e] && i[e].finish && i[e].finish.call(this);
							delete n.finish
						})
					}
				}), lt.each(["toggle", "show", "hide"], function(t, e) {
					var n = lt.fn[e];
					lt.fn[e] = function(t, i, a) {
						return null == t || "boolean" == typeof t ? n.apply(this, arguments) : this.animate(q(e, !0), t, i, a)
					}
				}), lt.each({
					slideDown: q("show"),
					slideUp: q("hide"),
					slideToggle: q("toggle"),
					fadeIn: {
						opacity: "show"
					},
					fadeOut: {
						opacity: "hide"
					},
					fadeToggle: {
						opacity: "toggle"
					}
				}, function(t, e) {
					lt.fn[t] = function(t, n, i) {
						return this.animate(e, t, n, i)
					}
				}), lt.timers = [], lt.fx.tick = function() {
					var t, e = lt.timers,
						n = 0;
					for (we = lt.now(); n < e.length; n++) t = e[n], t() || e[n] !== t || e.splice(n--, 1);
					e.length || lt.fx.stop(), we = void 0
				}, lt.fx.timer = function(t) {
					lt.timers.push(t), t() ? lt.fx.start() : lt.timers.pop()
				}, lt.fx.interval = 13, lt.fx.start = function() {
					_e || (_e = setInterval(lt.fx.tick, lt.fx.interval))
				}, lt.fx.stop = function() {
					clearInterval(_e), _e = null
				}, lt.fx.speeds = {
					slow: 600,
					fast: 200,
					_default: 400
				}, lt.fn.delay = function(t, e) {
					return t = lt.fx ? lt.fx.speeds[t] || t : t, e = e || "fx", this.queue(e, function(e, n) {
						var i = setTimeout(e, t);
						n.stop = function() {
							clearTimeout(i)
						}
					})
				},
				function() {
					var t, e, n, i, a;
					e = _t.createElement("div"), e.setAttribute("className", "t"), e.innerHTML = "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", i = e.getElementsByTagName("a")[0], n = _t.createElement("select"), a = n.appendChild(_t.createElement("option")), t = e.getElementsByTagName("input")[0], i.style.cssText = "top:1px", rt.getSetAttribute = "t" !== e.className, rt.style = /top/.test(i.getAttribute("style")), rt.hrefNormalized = "/a" === i.getAttribute("href"), rt.checkOn = !!t.value, rt.optSelected = a.selected, rt.enctype = !!_t.createElement("form").enctype, n.disabled = !0, rt.optDisabled = !a.disabled, t = _t.createElement("input"), t.setAttribute("value", ""), rt.input = "" === t.getAttribute("value"), t.value = "t", t.setAttribute("type", "radio"), rt.radioValue = "t" === t.value
				}();
			var ze = /\r/g;
			lt.fn.extend({
				val: function(t) {
					var e, n, i, a = this[0]; {
						if (arguments.length) return i = lt.isFunction(t), this.each(function(n) {
							var a;
							1 === this.nodeType && (a = i ? t.call(this, n, lt(this).val()) : t, null == a ? a = "" : "number" == typeof a ? a += "" : lt.isArray(a) && (a = lt.map(a, function(t) {
								return null == t ? "" : t + ""
							})), e = lt.valHooks[this.type] || lt.valHooks[this.nodeName.toLowerCase()], e && "set" in e && void 0 !== e.set(this, a, "value") || (this.value = a))
						});
						if (a) return e = lt.valHooks[a.type] || lt.valHooks[a.nodeName.toLowerCase()], e && "get" in e && void 0 !== (n = e.get(a, "value")) ? n : (n = a.value, "string" == typeof n ? n.replace(ze, "") : null == n ? "" : n)
					}
				}
			}), lt.extend({
				valHooks: {
					option: {
						get: function(t) {
							var e = lt.find.attr(t, "value");
							return null != e ? e : lt.trim(lt.text(t))
						}
					},
					select: {
						get: function(t) {
							for (var e, n, i = t.options, a = t.selectedIndex, o = "select-one" === t.type || 0 > a, r = o ? null : [], s = o ? a + 1 : i.length, l = 0 > a ? s : o ? a : 0; s > l; l++)
								if (n = i[l], !(!n.selected && l !== a || (rt.optDisabled ? n.disabled : null !== n.getAttribute("disabled")) || n.parentNode.disabled && lt.nodeName(n.parentNode, "optgroup"))) {
									if (e = lt(n).val(), o) return e;
									r.push(e)
								}
							return r
						},
						set: function(t, e) {
							for (var n, i, a = t.options, o = lt.makeArray(e), r = a.length; r--;)
								if (i = a[r], lt.inArray(lt.valHooks.option.get(i), o) >= 0) try {
									i.selected = n = !0
								} catch (s) {
									i.scrollHeight
								} else i.selected = !1;
							return n || (t.selectedIndex = -1), a
						}
					}
				}
			}), lt.each(["radio", "checkbox"], function() {
				lt.valHooks[this] = {
					set: function(t, e) {
						return lt.isArray(e) ? t.checked = lt.inArray(lt(t).val(), e) >= 0 : void 0
					}
				}, rt.checkOn || (lt.valHooks[this].get = function(t) {
					return null === t.getAttribute("value") ? "on" : t.value
				})
			});
			var Ce, Te, Se = lt.expr.attrHandle,
				je = /^(?:checked|selected)$/i,
				Ie = rt.getSetAttribute,
				Pe = rt.input;
			lt.fn.extend({
				attr: function(t, e) {
					return Lt(this, lt.attr, t, e, arguments.length > 1)
				},
				removeAttr: function(t) {
					return this.each(function() {
						lt.removeAttr(this, t)
					})
				}
			}), lt.extend({
				attr: function(t, e, n) {
					var i, a, o = t.nodeType;
					if (t && 3 !== o && 8 !== o && 2 !== o) return typeof t.getAttribute === St ? lt.prop(t, e, n) : (1 === o && lt.isXMLDoc(t) || (e = e.toLowerCase(), i = lt.attrHooks[e] || (lt.expr.match.bool.test(e) ? Te : Ce)), void 0 === n ? i && "get" in i && null !== (a = i.get(t, e)) ? a : (a = lt.find.attr(t, e), null == a ? void 0 : a) : null !== n ? i && "set" in i && void 0 !== (a = i.set(t, n, e)) ? a : (t.setAttribute(e, n + ""), n) : void lt.removeAttr(t, e))
				},
				removeAttr: function(t, e) {
					var n, i, a = 0,
						o = e && e.match(kt);
					if (o && 1 === t.nodeType)
						for (; n = o[a++];) i = lt.propFix[n] || n, lt.expr.match.bool.test(n) ? Pe && Ie || !je.test(n) ? t[i] = !1 : t[lt.camelCase("default-" + n)] = t[i] = !1 : lt.attr(t, n, ""), t.removeAttribute(Ie ? n : i)
				},
				attrHooks: {
					type: {
						set: function(t, e) {
							if (!rt.radioValue && "radio" === e && lt.nodeName(t, "input")) {
								var n = t.value;
								return t.setAttribute("type", e), n && (t.value = n), e
							}
						}
					}
				}
			}), Te = {
				set: function(t, e, n) {
					return e === !1 ? lt.removeAttr(t, n) : Pe && Ie || !je.test(n) ? t.setAttribute(!Ie && lt.propFix[n] || n, n) : t[lt.camelCase("default-" + n)] = t[n] = !0, n
				}
			}, lt.each(lt.expr.match.bool.source.match(/\w+/g), function(t, e) {
				var n = Se[e] || lt.find.attr;
				Se[e] = Pe && Ie || !je.test(e) ? function(t, e, i) {
					var a, o;
					return i || (o = Se[e], Se[e] = a, a = null != n(t, e, i) ? e.toLowerCase() : null, Se[e] = o), a
				} : function(t, e, n) {
					return n ? void 0 : t[lt.camelCase("default-" + e)] ? e.toLowerCase() : null
				}
			}), Pe && Ie || (lt.attrHooks.value = {
				set: function(t, e, n) {
					return lt.nodeName(t, "input") ? void(t.defaultValue = e) : Ce && Ce.set(t, e, n)
				}
			}), Ie || (Ce = {
				set: function(t, e, n) {
					var i = t.getAttributeNode(n);
					return i || t.setAttributeNode(i = t.ownerDocument.createAttribute(n)), i.value = e += "", "value" === n || e === t.getAttribute(n) ? e : void 0
				}
			}, Se.id = Se.name = Se.coords = function(t, e, n) {
				var i;
				return n ? void 0 : (i = t.getAttributeNode(e)) && "" !== i.value ? i.value : null
			}, lt.valHooks.button = {
				get: function(t, e) {
					var n = t.getAttributeNode(e);
					return n && n.specified ? n.value : void 0
				},
				set: Ce.set
			}, lt.attrHooks.contenteditable = {
				set: function(t, e, n) {
					Ce.set(t, "" === e ? !1 : e, n)
				}
			}, lt.each(["width", "height"], function(t, e) {
				lt.attrHooks[e] = {
					set: function(t, n) {
						return "" === n ? (t.setAttribute(e, "auto"), n) : void 0
					}
				}
			})), rt.style || (lt.attrHooks.style = {
				get: function(t) {
					return t.style.cssText || void 0
				},
				set: function(t, e) {
					return t.style.cssText = e + ""
				}
			});
			var Ae = /^(?:input|select|textarea|button|object)$/i,
				Ee = /^(?:a|area)$/i;
			lt.fn.extend({
				prop: function(t, e) {
					return Lt(this, lt.prop, t, e, arguments.length > 1)
				},
				removeProp: function(t) {
					return t = lt.propFix[t] || t, this.each(function() {
						try {
							this[t] = void 0, delete this[t]
						} catch (e) {}
					})
				}
			}), lt.extend({
				propFix: {
					"for": "htmlFor",
					"class": "className"
				},
				prop: function(t, e, n) {
					var i, a, o, r = t.nodeType;
					if (t && 3 !== r && 8 !== r && 2 !== r) return o = 1 !== r || !lt.isXMLDoc(t), o && (e = lt.propFix[e] || e, a = lt.propHooks[e]), void 0 !== n ? a && "set" in a && void 0 !== (i = a.set(t, n, e)) ? i : t[e] = n : a && "get" in a && null !== (i = a.get(t, e)) ? i : t[e]
				},
				propHooks: {
					tabIndex: {
						get: function(t) {
							var e = lt.find.attr(t, "tabindex");
							return e ? parseInt(e, 10) : Ae.test(t.nodeName) || Ee.test(t.nodeName) && t.href ? 0 : -1
						}
					}
				}
			}), rt.hrefNormalized || lt.each(["href", "src"], function(t, e) {
				lt.propHooks[e] = {
					get: function(t) {
						return t.getAttribute(e, 4)
					}
				}
			}), rt.optSelected || (lt.propHooks.selected = {
				get: function(t) {
					var e = t.parentNode;
					return e && (e.selectedIndex, e.parentNode && e.parentNode.selectedIndex), null
				}
			}), lt.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function() {
				lt.propFix[this.toLowerCase()] = this
			}), rt.enctype || (lt.propFix.enctype = "encoding");
			var Le = /[\t\r\n\f]/g;
			lt.fn.extend({
				addClass: function(t) {
					var e, n, i, a, o, r, s = 0,
						l = this.length,
						d = "string" == typeof t && t;
					if (lt.isFunction(t)) return this.each(function(e) {
						lt(this).addClass(t.call(this, e, this.className))
					});
					if (d)
						for (e = (t || "").match(kt) || []; l > s; s++)
							if (n = this[s], i = 1 === n.nodeType && (n.className ? (" " + n.className + " ").replace(Le, " ") : " ")) {
								for (o = 0; a = e[o++];) i.indexOf(" " + a + " ") < 0 && (i += a + " ");
								r = lt.trim(i), n.className !== r && (n.className = r)
							}
					return this
				},
				removeClass: function(t) {
					var e, n, i, a, o, r, s = 0,
						l = this.length,
						d = 0 === arguments.length || "string" == typeof t && t;
					if (lt.isFunction(t)) return this.each(function(e) {
						lt(this).removeClass(t.call(this, e, this.className))
					});
					if (d)
						for (e = (t || "").match(kt) || []; l > s; s++)
							if (n = this[s], i = 1 === n.nodeType && (n.className ? (" " + n.className + " ").replace(Le, " ") : "")) {
								for (o = 0; a = e[o++];)
									for (; i.indexOf(" " + a + " ") >= 0;) i = i.replace(" " + a + " ", " ");
								r = t ? lt.trim(i) : "", n.className !== r && (n.className = r)
							}
					return this
				},
				toggleClass: function(t, e) {
					var n = typeof t;
					return "boolean" == typeof e && "string" === n ? e ? this.addClass(t) : this.removeClass(t) : this.each(lt.isFunction(t) ? function(n) {
						lt(this).toggleClass(t.call(this, n, this.className, e), e)
					} : function() {
						if ("string" === n)
							for (var e, i = 0, a = lt(this), o = t.match(kt) || []; e = o[i++];) a.hasClass(e) ? a.removeClass(e) : a.addClass(e);
						else(n === St || "boolean" === n) && (this.className && lt._data(this, "__className__", this.className), this.className = this.className || t === !1 ? "" : lt._data(this, "__className__") || "")
					})
				},
				hasClass: function(t) {
					for (var e = " " + t + " ", n = 0, i = this.length; i > n; n++)
						if (1 === this[n].nodeType && (" " + this[n].className + " ").replace(Le, " ").indexOf(e) >= 0) return !0;
					return !1
				}
			}), lt.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "), function(t, e) {
				lt.fn[e] = function(t, n) {
					return arguments.length > 0 ? this.on(e, null, t, n) : this.trigger(e)
				}
			}), lt.fn.extend({
				hover: function(t, e) {
					return this.mouseenter(t).mouseleave(e || t)
				},
				bind: function(t, e, n) {
					return this.on(t, null, e, n)
				},
				unbind: function(t, e) {
					return this.off(t, null, e)
				},
				delegate: function(t, e, n, i) {
					return this.on(e, t, n, i)
				},
				undelegate: function(t, e, n) {
					return 1 === arguments.length ? this.off(t, "**") : this.off(e, t || "**", n)
				}
			});
			var Oe = lt.now(),
				Ne = /\?/,
				De = /(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;
			lt.parseJSON = function(t) {
				if (a.JSON && a.JSON.parse) return a.JSON.parse(t + "");
				var e, n = null,
					i = lt.trim(t + "");
				return i && !lt.trim(i.replace(De, function(t, i, a, o) {
					return e && i && (n = 0), 0 === n ? t : (e = a || i, n += !o - !a, "")
				})) ? Function("return " + i)() : lt.error("Invalid JSON: " + t)
			}, lt.parseXML = function(t) {
				var e, n;
				if (!t || "string" != typeof t) return null;
				try {
					a.DOMParser ? (n = new DOMParser, e = n.parseFromString(t, "text/xml")) : (e = new ActiveXObject("Microsoft.XMLDOM"), e.async = "false", e.loadXML(t))
				} catch (i) {
					e = void 0
				}
				return e && e.documentElement && !e.getElementsByTagName("parsererror").length || lt.error("Invalid XML: " + t), e
			};
			var Me, qe, Be = /#.*$/,
				Re = /([?&])_=[^&]*/,
				We = /^(.*?):[ \t]*([^\r\n]*)\r?$/gm,
				Fe = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
				He = /^(?:GET|HEAD)$/,
				$e = /^\/\//,
				Xe = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,
				Ue = {},
				Ge = {},
				Ye = "*/".concat("*");
			try {
				qe = location.href
			} catch (Ve) {
				qe = _t.createElement("a"), qe.href = "", qe = qe.href
			}
			Me = Xe.exec(qe.toLowerCase()) || [], lt.extend({
				active: 0,
				lastModified: {},
				etag: {},
				ajaxSettings: {
					url: qe,
					type: "GET",
					isLocal: Fe.test(Me[1]),
					global: !0,
					processData: !0,
					async: !0,
					contentType: "application/x-www-form-urlencoded; charset=UTF-8",
					accepts: {
						"*": Ye,
						text: "text/plain",
						html: "text/html",
						xml: "application/xml, text/xml",
						json: "application/json, text/javascript"
					},
					contents: {
						xml: /xml/,
						html: /html/,
						json: /json/
					},
					responseFields: {
						xml: "responseXML",
						text: "responseText",
						json: "responseJSON"
					},
					converters: {
						"* text": String,
						"text html": !0,
						"text json": lt.parseJSON,
						"text xml": lt.parseXML
					},
					flatOptions: {
						url: !0,
						context: !0
					}
				},
				ajaxSetup: function(t, e) {
					return e ? X(X(t, lt.ajaxSettings), e) : X(lt.ajaxSettings, t)
				},
				ajaxPrefilter: H(Ue),
				ajaxTransport: H(Ge),
				ajax: function(t, e) {
					function n(t, e, n, i) {
						var a, c, w, _, b, y = e;
						2 !== v && (v = 2, s && clearTimeout(s), d = void 0, r = i || "", x.readyState = t > 0 ? 4 : 0, a = t >= 200 && 300 > t || 304 === t, n && (_ = U(p, x, n)), _ = G(p, _, x, a), a ? (p.ifModified && (b = x.getResponseHeader("Last-Modified"), b && (lt.lastModified[o] = b), b = x.getResponseHeader("etag"), b && (lt.etag[o] = b)), 204 === t || "HEAD" === p.type ? y = "nocontent" : 304 === t ? y = "notmodified" : (y = _.state, c = _.data, w = _.error, a = !w)) : (w = y, (t || !y) && (y = "error", 0 > t && (t = 0))), x.status = t, x.statusText = (e || y) + "", a ? g.resolveWith(h, [c, y, x]) : g.rejectWith(h, [x, y, w]), x.statusCode(f), f = void 0, l && u.trigger(a ? "ajaxSuccess" : "ajaxError", [x, p, a ? c : w]), m.fireWith(h, [x, y]), l && (u.trigger("ajaxComplete", [x, p]), --lt.active || lt.event.trigger("ajaxStop")))
					}
					"object" == typeof t && (e = t, t = void 0), e = e || {};
					var i, a, o, r, s, l, d, c, p = lt.ajaxSetup({}, e),
						h = p.context || p,
						u = p.context && (h.nodeType || h.jquery) ? lt(h) : lt.event,
						g = lt.Deferred(),
						m = lt.Callbacks("once memory"),
						f = p.statusCode || {},
						w = {},
						_ = {},
						v = 0,
						b = "canceled",
						x = {
							readyState: 0,
							getResponseHeader: function(t) {
								var e;
								if (2 === v) {
									if (!c)
										for (c = {}; e = We.exec(r);) c[e[1].toLowerCase()] = e[2];
									e = c[t.toLowerCase()]
								}
								return null == e ? null : e
							},
							getAllResponseHeaders: function() {
								return 2 === v ? r : null
							},
							setRequestHeader: function(t, e) {
								var n = t.toLowerCase();
								return v || (t = _[n] = _[n] || t, w[t] = e), this
							},
							overrideMimeType: function(t) {
								return v || (p.mimeType = t), this
							},
							statusCode: function(t) {
								var e;
								if (t)
									if (2 > v)
										for (e in t) f[e] = [f[e], t[e]];
									else x.always(t[x.status]);
								return this
							},
							abort: function(t) {
								var e = t || b;
								return d && d.abort(e), n(0, e), this
							}
						};
					if (g.promise(x).complete = m.add, x.success = x.done, x.error = x.fail, p.url = ((t || p.url || qe) + "").replace(Be, "").replace($e, Me[1] + "//"), p.type = e.method || e.type || p.method || p.type, p.dataTypes = lt.trim(p.dataType || "*").toLowerCase().match(kt) || [""], null == p.crossDomain && (i = Xe.exec(p.url.toLowerCase()), p.crossDomain = !(!i || i[1] === Me[1] && i[2] === Me[2] && (i[3] || ("http:" === i[1] ? "80" : "443")) === (Me[3] || ("http:" === Me[1] ? "80" : "443")))), p.data && p.processData && "string" != typeof p.data && (p.data = lt.param(p.data, p.traditional)), $(Ue, p, e, x), 2 === v) return x;
					l = lt.event && p.global, l && 0 === lt.active++ && lt.event.trigger("ajaxStart"), p.type = p.type.toUpperCase(), p.hasContent = !He.test(p.type), o = p.url, p.hasContent || (p.data && (o = p.url += (Ne.test(o) ? "&" : "?") + p.data, delete p.data), p.cache === !1 && (p.url = Re.test(o) ? o.replace(Re, "$1_=" + Oe++) : o + (Ne.test(o) ? "&" : "?") + "_=" + Oe++)), p.ifModified && (lt.lastModified[o] && x.setRequestHeader("If-Modified-Since", lt.lastModified[o]), lt.etag[o] && x.setRequestHeader("If-None-Match", lt.etag[o])), (p.data && p.hasContent && p.contentType !== !1 || e.contentType) && x.setRequestHeader("Content-Type", p.contentType), x.setRequestHeader("Accept", p.dataTypes[0] && p.accepts[p.dataTypes[0]] ? p.accepts[p.dataTypes[0]] + ("*" !== p.dataTypes[0] ? ", " + Ye + "; q=0.01" : "") : p.accepts["*"]);
					for (a in p.headers) x.setRequestHeader(a, p.headers[a]);
					if (p.beforeSend && (p.beforeSend.call(h, x, p) === !1 || 2 === v)) return x.abort();
					b = "abort";
					for (a in {
						success: 1,
						error: 1,
						complete: 1
					}) x[a](p[a]);
					if (d = $(Ge, p, e, x)) {
						x.readyState = 1, l && u.trigger("ajaxSend", [x, p]), p.async && p.timeout > 0 && (s = setTimeout(function() {
							x.abort("timeout")
						}, p.timeout));
						try {
							v = 1, d.send(w, n)
						} catch (y) {
							if (!(2 > v)) throw y;
							n(-1, y)
						}
					} else n(-1, "No Transport");
					return x
				},
				getJSON: function(t, e, n) {
					return lt.get(t, e, n, "json")
				},
				getScript: function(t, e) {
					return lt.get(t, void 0, e, "script")
				}
			}), lt.each(["get", "post"], function(t, e) {
				lt[e] = function(t, n, i, a) {
					return lt.isFunction(n) && (a = a || i, i = n, n = void 0), lt.ajax({
						url: t,
						type: e,
						dataType: a,
						data: n,
						success: i
					})
				}
			}), lt._evalUrl = function(t) {
				return lt.ajax({
					url: t,
					type: "GET",
					dataType: "script",
					async: !1,
					global: !1,
					"throws": !0
				})
			}, lt.fn.extend({
				wrapAll: function(t) {
					if (lt.isFunction(t)) return this.each(function(e) {
						lt(this).wrapAll(t.call(this, e))
					});
					if (this[0]) {
						var e = lt(t, this[0].ownerDocument).eq(0).clone(!0);
						this[0].parentNode && e.insertBefore(this[0]), e.map(function() {
							for (var t = this; t.firstChild && 1 === t.firstChild.nodeType;) t = t.firstChild;
							return t
						}).append(this)
					}
					return this
				},
				wrapInner: function(t) {
					return this.each(lt.isFunction(t) ? function(e) {
						lt(this).wrapInner(t.call(this, e))
					} : function() {
						var e = lt(this),
							n = e.contents();
						n.length ? n.wrapAll(t) : e.append(t)
					})
				},
				wrap: function(t) {
					var e = lt.isFunction(t);
					return this.each(function(n) {
						lt(this).wrapAll(e ? t.call(this, n) : t)
					})
				},
				unwrap: function() {
					return this.parent().each(function() {
						lt.nodeName(this, "body") || lt(this).replaceWith(this.childNodes)
					}).end()
				}
			}), lt.expr.filters.hidden = function(t) {
				return t.offsetWidth <= 0 && t.offsetHeight <= 0 || !rt.reliableHiddenOffsets() && "none" === (t.style && t.style.display || lt.css(t, "display"))
			}, lt.expr.filters.visible = function(t) {
				return !lt.expr.filters.hidden(t)
			};
			var Je = /%20/g,
				Ze = /\[\]$/,
				Ke = /\r?\n/g,
				Qe = /^(?:submit|button|image|reset|file)$/i,
				tn = /^(?:input|select|textarea|keygen)/i;
			lt.param = function(t, e) {
				var n, i = [],
					a = function(t, e) {
						e = lt.isFunction(e) ? e() : null == e ? "" : e, i[i.length] = encodeURIComponent(t) + "=" + encodeURIComponent(e)
					};
				if (void 0 === e && (e = lt.ajaxSettings && lt.ajaxSettings.traditional), lt.isArray(t) || t.jquery && !lt.isPlainObject(t)) lt.each(t, function() {
					a(this.name, this.value)
				});
				else
					for (n in t) Y(n, t[n], e, a);
				return i.join("&").replace(Je, "+")
			}, lt.fn.extend({
				serialize: function() {
					return lt.param(this.serializeArray())
				},
				serializeArray: function() {
					return this.map(function() {
						var t = lt.prop(this, "elements");
						return t ? lt.makeArray(t) : this
					}).filter(function() {
						var t = this.type;
						return this.name && !lt(this).is(":disabled") && tn.test(this.nodeName) && !Qe.test(t) && (this.checked || !Ot.test(t))
					}).map(function(t, e) {
						var n = lt(this).val();
						return null == n ? null : lt.isArray(n) ? lt.map(n, function(t) {
							return {
								name: e.name,
								value: t.replace(Ke, "\r\n")
							}
						}) : {
							name: e.name,
							value: n.replace(Ke, "\r\n")
						}
					}).get()
				}
			}), lt.ajaxSettings.xhr = void 0 !== a.ActiveXObject ? function() {
				return !this.isLocal && /^(get|post|head|put|delete|options)$/i.test(this.type) && V() || J()
			} : V;
			var en = 0,
				nn = {},
				an = lt.ajaxSettings.xhr();
			a.attachEvent && a.attachEvent("onunload", function() {
				for (var t in nn) nn[t](void 0, !0)
			}), rt.cors = !!an && "withCredentials" in an, an = rt.ajax = !!an, an && lt.ajaxTransport(function(t) {
				if (!t.crossDomain || rt.cors) {
					var e;
					return {
						send: function(n, i) {
							var a, o = t.xhr(),
								r = ++en;
							if (o.open(t.type, t.url, t.async, t.username, t.password), t.xhrFields)
								for (a in t.xhrFields) o[a] = t.xhrFields[a];
							t.mimeType && o.overrideMimeType && o.overrideMimeType(t.mimeType), t.crossDomain || n["X-Requested-With"] || (n["X-Requested-With"] = "XMLHttpRequest");
							for (a in n) void 0 !== n[a] && o.setRequestHeader(a, n[a] + "");
							o.send(t.hasContent && t.data || null), e = function(n, a) {
								var s, l, d;
								if (e && (a || 4 === o.readyState))
									if (delete nn[r], e = void 0, o.onreadystatechange = lt.noop, a) 4 !== o.readyState && o.abort();
									else {
										d = {}, s = o.status, "string" == typeof o.responseText && (d.text = o.responseText);
										try {
											l = o.statusText
										} catch (c) {
											l = ""
										}
										s || !t.isLocal || t.crossDomain ? 1223 === s && (s = 204) : s = d.text ? 200 : 404
									}
								d && i(s, l, d, o.getAllResponseHeaders());

							}, t.async ? 4 === o.readyState ? setTimeout(e) : o.onreadystatechange = nn[r] = e : e()
						},
						abort: function() {
							e && e(void 0, !0)
						}
					}
				}
			}), lt.ajaxSetup({
				accepts: {
					script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
				},
				contents: {
					script: /(?:java|ecma)script/
				},
				converters: {
					"text script": function(t) {
						return lt.globalEval(t), t
					}
				}
			}), lt.ajaxPrefilter("script", function(t) {
				void 0 === t.cache && (t.cache = !1), t.crossDomain && (t.type = "GET", t.global = !1)
			}), lt.ajaxTransport("script", function(t) {
				if (t.crossDomain) {
					var e, n = _t.head || lt("head")[0] || _t.documentElement;
					return {
						send: function(i, a) {
							e = _t.createElement("script"), e.async = !0, t.scriptCharset && (e.charset = t.scriptCharset), e.src = t.url, e.onload = e.onreadystatechange = function(t, n) {
								(n || !e.readyState || /loaded|complete/.test(e.readyState)) && (e.onload = e.onreadystatechange = null, e.parentNode && e.parentNode.removeChild(e), e = null, n || a(200, "success"))
							}, n.insertBefore(e, n.firstChild)
						},
						abort: function() {
							e && e.onload(void 0, !0)
						}
					}
				}
			});
			var on = [],
				rn = /(=)\?(?=&|$)|\?\?/;
			lt.ajaxSetup({
				jsonp: "callback",
				jsonpCallback: function() {
					var t = on.pop() || lt.expando + "_" + Oe++;
					return this[t] = !0, t
				}
			}), lt.ajaxPrefilter("json jsonp", function(t, e, n) {
				var i, o, r, s = t.jsonp !== !1 && (rn.test(t.url) ? "url" : "string" == typeof t.data && !(t.contentType || "").indexOf("application/x-www-form-urlencoded") && rn.test(t.data) && "data");
				return s || "jsonp" === t.dataTypes[0] ? (i = t.jsonpCallback = lt.isFunction(t.jsonpCallback) ? t.jsonpCallback() : t.jsonpCallback, s ? t[s] = t[s].replace(rn, "$1" + i) : t.jsonp !== !1 && (t.url += (Ne.test(t.url) ? "&" : "?") + t.jsonp + "=" + i), t.converters["script json"] = function() {
					return r || lt.error(i + " was not called"), r[0]
				}, t.dataTypes[0] = "json", o = a[i], a[i] = function() {
					r = arguments
				}, n.always(function() {
					a[i] = o, t[i] && (t.jsonpCallback = e.jsonpCallback, on.push(i)), r && lt.isFunction(o) && o(r[0]), r = o = void 0
				}), "script") : void 0
			}), lt.parseHTML = function(t, e, n) {
				if (!t || "string" != typeof t) return null;
				"boolean" == typeof e && (n = e, e = !1), e = e || _t;
				var i = mt.exec(t),
					a = !n && [];
				return i ? [e.createElement(i[1])] : (i = lt.buildFragment([t], e, a), a && a.length && lt(a).remove(), lt.merge([], i.childNodes))
			};
			var sn = lt.fn.load;
			lt.fn.load = function(t, e, n) {
				if ("string" != typeof t && sn) return sn.apply(this, arguments);
				var i, a, o, r = this,
					s = t.indexOf(" ");
				return s >= 0 && (i = lt.trim(t.slice(s, t.length)), t = t.slice(0, s)), lt.isFunction(e) ? (n = e, e = void 0) : e && "object" == typeof e && (o = "POST"), r.length > 0 && lt.ajax({
					url: t,
					type: o,
					dataType: "html",
					data: e
				}).done(function(t) {
					a = arguments, r.html(i ? lt("<div>").append(lt.parseHTML(t)).find(i) : t)
				}).complete(n && function(t, e) {
					r.each(n, a || [t.responseText, e, t])
				}), this
			}, lt.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function(t, e) {
				lt.fn[e] = function(t) {
					return this.on(e, t)
				}
			}), lt.expr.filters.animated = function(t) {
				return lt.grep(lt.timers, function(e) {
					return t === e.elem
				}).length
			};
			var ln = a.document.documentElement;
			return lt.offset = {
				setOffset: function(t, e, n) {
					var i, a, o, r, s, l, d, c = lt.css(t, "position"),
						p = lt(t),
						h = {};
					"static" === c && (t.style.position = "relative"), s = p.offset(), o = lt.css(t, "top"), l = lt.css(t, "left"), d = ("absolute" === c || "fixed" === c) && lt.inArray("auto", [o, l]) > -1, d ? (i = p.position(), r = i.top, a = i.left) : (r = parseFloat(o) || 0, a = parseFloat(l) || 0), lt.isFunction(e) && (e = e.call(t, n, s)), null != e.top && (h.top = e.top - s.top + r), null != e.left && (h.left = e.left - s.left + a), "using" in e ? e.using.call(t, h) : p.css(h)
				}
			}, lt.fn.extend({
				offset: function(t) {
					if (arguments.length) return void 0 === t ? this : this.each(function(e) {
						lt.offset.setOffset(this, t, e)
					});
					var e, n, i = {
							top: 0,
							left: 0
						},
						a = this[0],
						o = a && a.ownerDocument;
					if (o) return e = o.documentElement, lt.contains(e, a) ? (typeof a.getBoundingClientRect !== St && (i = a.getBoundingClientRect()), n = Z(o), {
						top: i.top + (n.pageYOffset || e.scrollTop) - (e.clientTop || 0),
						left: i.left + (n.pageXOffset || e.scrollLeft) - (e.clientLeft || 0)
					}) : i
				},
				position: function() {
					if (this[0]) {
						var t, e, n = {
								top: 0,
								left: 0
							},
							i = this[0];
						return "fixed" === lt.css(i, "position") ? e = i.getBoundingClientRect() : (t = this.offsetParent(), e = this.offset(), lt.nodeName(t[0], "html") || (n = t.offset()), n.top += lt.css(t[0], "borderTopWidth", !0), n.left += lt.css(t[0], "borderLeftWidth", !0)), {
							top: e.top - n.top - lt.css(i, "marginTop", !0),
							left: e.left - n.left - lt.css(i, "marginLeft", !0)
						}
					}
				},
				offsetParent: function() {
					return this.map(function() {
						for (var t = this.offsetParent || ln; t && !lt.nodeName(t, "html") && "static" === lt.css(t, "position");) t = t.offsetParent;
						return t || ln
					})
				}
			}), lt.each({
				scrollLeft: "pageXOffset",
				scrollTop: "pageYOffset"
			}, function(t, e) {
				var n = /Y/.test(e);
				lt.fn[t] = function(i) {
					return Lt(this, function(t, i, a) {
						var o = Z(t);
						return void 0 === a ? o ? e in o ? o[e] : o.document.documentElement[i] : t[i] : void(o ? o.scrollTo(n ? lt(o).scrollLeft() : a, n ? a : lt(o).scrollTop()) : t[i] = a)
					}, t, i, arguments.length, null)
				}
			}), lt.each(["top", "left"], function(t, e) {
				lt.cssHooks[e] = P(rt.pixelPosition, function(t, n) {
					return n ? (n = oe(t, e), se.test(n) ? lt(t).position()[e] + "px" : n) : void 0
				})
			}), lt.each({
				Height: "height",
				Width: "width"
			}, function(t, e) {
				lt.each({
					padding: "inner" + t,
					content: e,
					"": "outer" + t
				}, function(n, i) {
					lt.fn[i] = function(i, a) {
						var o = arguments.length && (n || "boolean" != typeof i),
							r = n || (i === !0 || a === !0 ? "margin" : "border");
						return Lt(this, function(e, n, i) {
							var a;
							return lt.isWindow(e) ? e.document.documentElement["client" + t] : 9 === e.nodeType ? (a = e.documentElement, Math.max(e.body["scroll" + t], a["scroll" + t], e.body["offset" + t], a["offset" + t], a["client" + t])) : void 0 === i ? lt.css(e, n, r) : lt.style(e, n, i, r)
						}, e, o ? i : void 0, o, null)
					}
				})
			}), lt.fn.size = function() {
				return this.length
			}, lt.fn.andSelf = lt.fn.addBack, i = function() {
				return lt
			}.call(e, n, e, t), !(void 0 !== i && (t.exports = i)), lt
		})
	},
	function(t, e, n) {
		var i;
		! function() {
			function a(t) {
				return t.replace(k, "").replace(z, ",").replace(C, "").replace(T, "").replace(S, "").split(j)
			}

			function o(t) {
				return "'" + t.replace(/('|\\)/g, "\\$1").replace(/\r/g, "\\r").replace(/\n/g, "\\n") + "'"
			}

			function r(t, e) {
				function n(t) {
					return h += t.split(/\n/).length - 1, c && (t = t.replace(/\s+/g, " ").replace(/<!--[\w\W]*?-->/g, "")), t && (t = m[1] + o(t) + m[2] + "\n"), t
				}

				function i(t) {
					var n = h;
					if (d ? t = d(t, e) : r && (t = t.replace(/\n/g, function() {
						return h++, "$line=" + h + ";"
					})), 0 === t.indexOf("=")) {
						var i = p && !/^=[=#]/.test(t);
						if (t = t.replace(/^=[=#]?|[\s;]*$/g, ""), i) {
							var o = t.replace(/\s*\([^\)]+\)/, "");
							w[o] || /^(include|print)$/.test(o) || (t = "$escape(" + t + ")")
						} else t = "$string(" + t + ")";
						t = m[1] + t + m[2]
					}
					return r && (t = "$line=" + n + ";" + t), x(a(t), function(t) {
						if (t && !u[t]) {
							var e;
							e = "print" === t ? v : "include" === t ? b : w[t] ? "$utils." + t : _[t] ? "$helpers." + t : "$data." + t, y += t + "=" + e + ",", u[t] = !0
						}
					}), t + "\n"
				}
				var r = e.debug,
					s = e.openTag,
					l = e.closeTag,
					d = e.parser,
					c = e.compress,
					p = e.escape,
					h = 1,
					u = {
						$data: 1,
						$filename: 1,
						$utils: 1,
						$helpers: 1,
						$out: 1,
						$line: 1
					},
					g = "".trim,
					m = g ? ["$out='';", "$out+=", ";", "$out"] : ["$out=[];", "$out.push(", ");", "$out.join('')"],
					f = g ? "$out+=text;return $out;" : "$out.push(text);",
					v = "function(){var text=''.concat.apply('',arguments);" + f + "}",
					b = "function(filename,data){data=data||$data;var text=$utils.$include(filename,data,$filename);" + f + "}",
					y = "'use strict';var $utils=this,$helpers=$utils.$helpers," + (r ? "$line=0," : ""),
					k = m[0],
					z = "return new String(" + m[3] + ");";
				x(t.split(s), function(t) {
					t = t.split(l);
					var e = t[0],
						a = t[1];
					1 === t.length ? k += n(e) : (k += i(e), a && (k += n(a)))
				});
				var C = y + k + z;
				r && (C = "try{" + C + "}catch(e){throw {filename:$filename,name:'Render Error',message:e.message,line:$line,source:" + o(t) + ".split(/\\n/)[$line-1].replace(/^\\s+/,'')};}");
				try {
					var T = new Function("$data", "$filename", C);
					return T.prototype = w, T
				} catch (S) {
					throw S.temp = "function anonymous($data,$filename) {" + C + "}", S
				}
			}
			var s = function(t, e) {
				return "string" == typeof e ? b(e, {
					filename: t
				}) : c(t, e)
			};
			s.version = "3.0.0", s.config = function(t, e) {
				l[t] = e
			};
			var l = s.defaults = {
					openTag: "<%",
					closeTag: "%>",
					escape: !0,
					cache: !0,
					compress: !1,
					parser: null
				},
				d = s.cache = {};
			s.render = function(t, e) {
				return b(t, e)
			};
			var c = s.renderFile = function(t, e) {
				var n = s.get(t) || v({
					filename: t,
					name: "Render Error",
					message: "Template not found"
				});
				return e ? n(e) : n
			};
			s.get = function(t) {
				var e;
				if (d[t]) e = d[t];
				else if ("object" == typeof document) {
					var n = document.getElementById(t);
					if (n) {
						var i = (n.value || n.innerHTML).replace(/^\s*|\s*$/g, "");
						e = b(i, {
							filename: t
						})
					}
				}
				return e
			};
			var p = function(t, e) {
					return "string" != typeof t && (e = typeof t, "number" === e ? t += "" : t = "function" === e ? p(t.call(t)) : ""), t
				},
				h = {
					"<": "&#60;",
					">": "&#62;",
					'"': "&#34;",
					"'": "&#39;",
					"&": "&#38;"
				},
				u = function(t) {
					return h[t]
				},
				g = function(t) {
					return p(t).replace(/&(?![\w#]+;)|[<>"']/g, u)
				},
				m = Array.isArray || function(t) {
					return "[object Array]" === {}.toString.call(t)
				},
				f = function(t, e) {
					var n, i;
					if (m(t))
						for (n = 0, i = t.length; i > n; n++) e.call(t, t[n], n, t);
					else
						for (n in t) e.call(t, t[n], n)
				},
				w = s.utils = {
					$helpers: {},
					$include: c,
					$string: p,
					$escape: g,
					$each: f
				};
			s.helper = function(t, e) {
				_[t] = e
			};
			var _ = s.helpers = w.$helpers;
			s.onerror = function(t) {
				var e = "Template Error\n\n";
				for (var n in t) e += "<" + n + ">\n" + t[n] + "\n\n";
				"object" == typeof console && console.error(e)
			};
			var v = function(t) {
					return s.onerror(t),
						function() {
							return "{Template Error}"
						}
				},
				b = s.compile = function(t, e) {
					function n(n) {
						try {
							return new o(n, a) + ""
						} catch (i) {
							return e.debug ? v(i)() : (e.debug = !0, b(t, e)(n))
						}
					}
					e = e || {};
					for (var i in l) void 0 === e[i] && (e[i] = l[i]);
					var a = e.filename;
					try {
						var o = r(t, e)
					} catch (s) {
						return s.filename = a || "anonymous", s.name = "Syntax Error", v(s)
					}
					return n.prototype = o.prototype, n.toString = function() {
						return o.toString()
					}, a && e.cache && (d[a] = n), n
				},
				x = w.$each,
				y = "break,case,catch,continue,debugger,default,delete,do,else,false,finally,for,function,if,in,instanceof,new,null,return,switch,this,throw,true,try,typeof,var,void,while,with,abstract,boolean,byte,char,class,const,double,enum,export,extends,final,float,goto,implements,import,int,interface,long,native,package,private,protected,public,short,static,super,synchronized,throws,transient,volatile,arguments,let,yield,undefined",
				k = /\/\*[\w\W]*?\*\/|\/\/[^\n]*\n|\/\/[^\n]*$|"(?:[^"\\]|\\[\w\W])*"|'(?:[^'\\]|\\[\w\W])*'|\s*\.\s*[$\w\.]+/g,
				z = /[^\w$]+/g,
				C = new RegExp(["\\b" + y.replace(/,/g, "\\b|\\b") + "\\b"].join("|"), "g"),
				T = /^\d[^,]*|,\d[^,]*/g,
				S = /^,+|,+$/g,
				j = /^$|,+/;
			l.openTag = "{{", l.closeTag = "}}";
			var I = function(t, e) {
				var n = e.split(":"),
					i = n.shift(),
					a = n.join(":") || "";
				return a && (a = ", " + a), "$helpers." + i + "(" + t + a + ")"
			};
			l.parser = function(t, e) {
				t = t.replace(/^\s/, "");
				var n = t.split(" "),
					i = n.shift(),
					a = n.join(" ");
				switch (i) {
					case "if":
						t = "if(" + a + "){";
						break;
					case "else":
						n = "if" === n.shift() ? " if(" + n.join(" ") + ")" : "", t = "}else" + n + "{";
						break;
					case "/if":
						t = "}";
						break;
					case "each":
						var o = n[0] || "$data",
							r = n[1] || "as",
							l = n[2] || "$value",
							d = n[3] || "$index",
							c = l + "," + d;
						"as" !== r && (o = "[]"), t = "$each(" + o + ",function(" + c + "){";
						break;
					case "/each":
						t = "});";
						break;
					case "echo":
						t = "print(" + a + ");";
						break;
					case "print":
					case "include":
						t = i + "(" + n.join(",") + ");";
						break;
					default:
						if (/^\s*\|\s*[\w\$]/.test(a)) {
							var p = !0;
							0 === t.indexOf("#") && (t = t.substr(1), p = !1);
							for (var h = 0, u = t.split("|"), g = u.length, m = u[h++]; g > h; h++) m = I(m, u[h]);
							t = (p ? "=" : "=#") + m
						} else t = s.helpers[i] ? "=#" + i + "(" + n.join(",") + ");" : "=" + t
				}
				return t
			}, i = function() {
				return s
			}.call(e, n, e, t), !(void 0 !== i && (t.exports = i))
		}()
	},
	function(t, n, i) {
		var a;
		(function(o) {
			"use strict";
			a = function() {
				var t, n = i(10),
					a = n.getPageInfo().siteName,
					r = i(12),
					s = i(15),
					l = function() {
						return {
							name: r("title").html(),
							price: 0,
							isbn: "",
							url: window.location.href
						}
					},
					d = function(t, e, i) {
						var a = l();
						o.site = i;
						try {
							var s = r(t).eq(e);
							if (a.name = s.text(), o.href = o.makeUrl(o.href, s.attr("href")), a.url = o.href, "undefined" == typeof o.href || "" == o.href) a.useless = !0;
							else {
								var d = n.isProductPage();
								d || (a.useless = !0)
							}
						} catch (c) {
							o.debug && console.log(c), a.useless = !0
						}
						return a
					},
					c = function(t, e, n, i) {
						var a = l();
						o.site = i;
						try {
							var s = r(t).eq(e);
							o.href = s.attr(n), a.url = s.attr(n), s.attr(n) && (a.url = s.attr(n)), ("undefined" == typeof o.href || "" == o.href) && (o.href = window.location.href)
						} catch (d) {
							o.debug && console.log(d)
						}
						return a
					};
				return {
					get: function(e) {
						if (t && !e) return t;
						var n = window.location.href;
						try {
							var i = this.productPattern[a]();
							i.price = s(i.price), i.site = a, null == i.url && (i.url = null != i.href ? i.href : n)
						} catch (d) {
							o.debug && console.log(d);
							var i = l();
							i.site = a, i.url = n
						}
						return "undefined" != typeof i.useless && i.useless ? null : (i.icon = i.url.replace(/^http[s]?\:\/\//g, ""), i.icon = i.icon.replace(/\/.*?$/g, ""), i.icon += "/favicon.ico", ("undefined" == typeof i.id || null == i.id) && (i.id = ""), ("undefined" == typeof i.keyword || null == i.keyword) && (i.keyword = ""), ("undefined" == typeof i.skeyword || null == i.skeyword) && (i.skeyword = ""), ("undefined" == typeof i.isbn || null == i.isbn) && (i.isbn = ""), ("undefined" == typeof i.name || "" == i.name) && (i.name = r("title").html()), t = i, o.dp = i, i)
					},
					productPattern: {
						mei: function() {
							return {
								name: r(".Product_title").text() + " " + r(".product_name h1").text(),
								price: r("#productRMB").text()
							}
						},
						vsigo: function() {
							return {
								name: r("h1").text(),
								price: r(".detail-price").text()
							}
						},
						fengqu: function() {
							return {
								name: r("h1").text(),
								price: r(".goods-price .goods-price-r1 strong").text()
							}
						},
						"taobao-xianyu": function() {
							return {
								name: r("h1.title").text(),
								price: r(".price-block price em").text()
							}
						},
						"ai-taobao": function() {
							if (!o.chrome_extension) {
								var t = window.pageconfig.promoPrice;
								return t || (t = window.ENV_DATA && window.ENV_DATA.compList && window.ENV_DATA.compList.item_detail && window.ENV_DATA.compList.item_detail.data && window.ENV_DATA.compList.item_detail.data.data1[0].price), {
									name: r("h3.item-title a").text(),
									price: t,
									url: window.pageconfig.itemId ? "http://item.taobao.com/item.htm?id=" + window.pageconfig.itemId : null
								}
							}
							var e = r(".aitaobao-edetail-header script").text(),
								n = /itemId":"(\d+)"/.exec(e);
							n && (n = n[1]);
							var t = /promoPrice":"([\d\.]+)"/.exec(e);
							return t && (t = t[1]), {
								name: r("h3.item-title a").text(),
								price: t,
								url: n ? "http://item.taobao.com/item.htm?id=" + n : null
							}
						},
						m6go: function() {
							return {
								name: r(".goodsName h1").text(),
								price: r("#SGoodsPrice").text().replace(/[\s]+/g, "")
							}
						},
						logitech: function() {
							return {
								url: r("h1.product-title").text()
							}
						},
						kjt: function() {
							return {
								url: r("h1").text()
							}
						},
						test: function() {
							return {
								url: r("#url").text()
							}
						},
						philips: function() {
							return {
								name: r("h1.sku-name").text()
							}
						},
						tcl: function() {
							return {
								name: r(".p_name").text()
							}
						},
						changhong: function() {
							return {
								name: r(".pc_name").text()
							}
						},
						konka: function() {
							return {
								name: r(".g_title h1").text()
							}
						},
						ineigo: function() {
							return {
								name: r("h5.ProName").text()
							}
						},
						skg: function() {
							return {
								name: r(".product-titles").text()
							}
						},
						"k-touch": function() {
							return {
								name: r(".pro_title").text()
							}
						},
						gionee: function() {
							return {
								name: r("#goodName").text()
							}
						},
						oppo: function() {
							return {
								name: r(".property .name").eq(0).text()
							}
						},
						"51buy": function() {
							var t = l();
							return t.price = r('.mod_price[itemprop="lowPrice"]').text().replace(/[￥¥\s]+/g, ""), "" == t.price && (t.price = window.itemInfo && window.itemInfo.price / 100), t.name = window.itemInfo && window.itemInfo.name, t.brand_string = window.itemInfo && window.itemInfo.brand_name, t
						},
						vivo: function() {
							return {
								name: r(".product-titles h3").text()
							}
						},
						"taobao-95095": function() {
							var t = l();
							try {
								t.price = r("#J_PromoPrice .tm-price").text(), t.name = r("#J_DetailMeta .tb-detail-hd h1").text()
							} catch (e) {
								o.debug && console.log(e)
							}
							return t
						},
						ebay: function() {
							return {
								name: r("#itemTitle").text().replace(/^Details about/gi, "")
							}
						},
						wy163: function() {
							return {
								name: r(".PInfo dt").eq(0).text() || r(".mv_name").text()
							}
						},
						dianping: function() {
							return {
								name: r(".deal-title h1,h1.title").text().replace(/\[.*\]/gi, "")
							}
						},
						nuomi: function() {
							var t = r(".details p.dp") && r(".details p.dp").text() || "",
								e = "";
							try {
								e = r(".details h1").text().replace(/^\u3010.+\u3011/i, "")
							} catch (n) {
								o.debug && console.log(n), e = ""
							}
							return e += t, {
								name: e
							}
						},
						meituan: function() {
							return {
								name: r(".deal-component-title").text(),
								isbn: ""
							}
						},
						meilishuo: function() {
							return {
								name: r("h3.s_tle").text()
							}
						},
						sfht: function() {
							var t = l();
							return t.name = r("#titleInfo h1").text(), t.price = r("#itemPrice .goods-price-r1 strong").text(), t
						},
						meici: function() {
							var t = l();
							t.name = r("#subpro .relative span").text();
							var e = r(".pro_price .price").text().match(/[0-9.]+/);
							return e && (t.price = e[0]), t
						},
						jianke: function() {
							var t = l();
							t.name = r(".det_title h1").text();
							var e = r(".Price_info .bigPrice dd em").text().match(/[0-9.]+/);
							return e && (t.price = e[0]), t
						},
						"gome-home": function() {
							var t = l();
							t.name = r(".prdmain .prdtit").text();
							var e = r("#prdPrice").text().replace(/\s/g, "").match(/[0-9.]+/);
							return e && (t.price = e[0]), t
						},
						nike: function() {
							var t = l();
							return t.name = r(".product-title-text").text(), t.price = r(".product-price").text(), t
						},
						"360kad": function() {
							var t = l();
							return t.name = r(".YIrd_l li").eq(0).text().replace("商品名称：", ""), t.price = r("#pricenumber").text(), t
						},
						lbxcn: function() {
							var t = l();
							return t.name = r(".detailPas").text().replace(/\s/g, ""), t.price = r("#lblPrice").text(), t
						},
						mogujie: function() {
							var t = l();
							return t.name = "", t.name = r(".goods-title").text(), "" == t.name && (t.name = r("div.shoptitle").text()), "" == t.name && (t.name = r(".goodstitle").text()), t
						},
						coolpad: function() {
							return {
								name: r(".good_name h1").text()
							}
						},
						ztedevice: function() {
							return {
								name: r(".znproducts h3").text()
							}
						},
						lenovo: function() {
							var t = l();
							return t.price = r("#gprice").text(), "" == t.price && (t.price = window.price), t.name = r(".goodsname").text(), "" == t.name && (t.name = r(".de_proname").text()), t
						},
						showjoy: function() {
							var t = l();
							return t.name = r(".choose-hd").text().replace(/\s/g, ""), t.price = r("#J_MainPrice .sj-price-text").text(), t
						},
						ocj: function() {
							var t = l();
							return t.name = r(".pv_shop_detail_title h1").text(), t.price = r(".info_box .val .price").text(), t
						},
						"ocj-tuan": function() {
							var t = l();
							t.name = r(".product-info > h1").text().replace(/\s/g, "");
							var e = r(".product_price_cont .p1").html().match(/\/span\>([0-9.]+)\</);
							return e && (t.price = e[1]), "" == t.price && (t.price = r(".product_price_cont .p1").text()), "" == t.name && (t.name = r(".product-info  h1 .title").text()), t
						},
						"ocj-kr": function() {
							var t = l();
							return t.name = r('.pv1_li_table_wrap th:contains("品名")+td').text(), t.price = r(".pricekorea").text(), t
						},
						gjw: function() {
							return {
								name: r(".silder_column_name span").text(),
								isbn: ""
							}
						},
						apple: function() {
							var t = l();
							try {
								var e = window.productSelectionController.data.products[0].partNumber;
								t.url = "http://store.apple.com/cn/product/" + e
							} catch (n) {
								o.debug && console.log(n)
							}
							var i = r("#primary .as-price-currentprice").text().match(/[0-9,]+/);
							return i && (t.price = i[0]), t
						},
						jumei: function() {
							var t = l();
							if (t.name = r("h1.pop_detail_tit").text(), "" == t.name) {
								t.name = r("title").html();
								var n = r("title").html().split("-");
								n.pop(), n.pop();
								try {
									t.name = n.join("-")
								} catch (i) {
									o.debug && console.log(e)
								}
							}
							return t.price = r("#mall_price_detail .price_num").text(), "" == t.price && (t.price = r("#stream_id").attr("price")), t
						},
						jumeiglobal: function() {
							var t = l();
							try {
								t.price = r(".jumei_price").text().match(/[0-9.]+/)[0], t.name = r('.deal_con_content td:contains("商品名称")').parent().find("td").eq(1).text()
							} catch (e) {
								o.debug && console.log(e)
							}
							return "" == t.price && (t.price = r("#stream_id").attr("price")), t
						},
						boohee: function() {
							var t = l();
							return t.name = r(".widget-goods-primary .row-des h1").text(), t.price = r(".col-price b").text().match(/[0-9.]+/)[0], t
						},
						moonbasa: function() {
							var t = "";
							try {
								t = r(".p_info h2").html().replace(/<[^>]*[\s\S]*[^<]*>/gi, ""), t = r.trim(t)
							} catch (e) {
								o.debug && console.log(e)
							}
							return {
								name: t
							}
						},
						homevv: function() {
							var t = l();
							try {
								t.name = r('.shop_name p[class="hdr_1"]').text(), t.name = t.name.replace(/<div[^>]*[\s\S]*[^<]*\/div>/gi, ""), t.name = t.name.replace(/<span[^>]*[\s\S]*[^<]*\/span>/gi, ""), t.name = t.name.replace(/&nbsp;/gi, ""), t.name = r.trim(t.name)
							} catch (e) {
								o.debug && console.log(e)
							}
							return t
						},
						"paixie-faxian": function() {
							var t = l();
							try {
								t.name = r(".find-info-product a p").eq(0).text(), t.price = r(".find-info-product a span").eq(0).text().match(/[0-9.]+/)[0]
							} catch (e) {
								o.debug && console.log(e)
							}
							return t
						},
						xiaomi: function() {
							var t = l();
							if (t.price = r("#J_goodsInfoBlock .J_mi_goodsPrice").text(), "" == t.price) {
								var e = r(".J_proPrice").text().match(/[0-9.]+/);
								e && (t.price = e[0])
							}
							return t
						},
						ihush: function() {
							return {
								name: r("h1.title").text()
							}
						},
						1688: function() {
							o.site = "taobao";
							var t = new Array;
							try {
								var e = r('.de-feature:contains("品牌")').text();
								e && t.push(e)
							} catch (n) {
								o.debug && console.log(n)
							}
							try {
								var i = r('.de-feature:contains("系列")').length > 0 ? r('.de-feature:contains("系列")').text() : null;
								i = i ? i : r('.de-feature:contains("货号")').length > 0 ? r('.de-feature:contains("货号")').text() : null, i = i ? i : r('.de-feature:contains("型号")').length > 0 ? r('.de-feature:contains("型号")').text() : null, i && t.push(i)
							} catch (n) {
								o.debug && console.log(n)
							}
							try {
								var a = r('.de-feature:contains("书号")').length > 0 ? r('.de-feature:contains("书号")').text() : null;
								a = a ? a.substr(a.indexOf("：") + 1) : null, a && t.push("ISBN：" + a)
							} catch (n) {
								o.debug && console.log(n)
							}
							return t = t.join("|"), {
								name: r("#mod-detail-hd h1").text(),
								isbn: "",
								skeyword: t
							}
						},
						"womai-related": function() {
							return {
								name: r(".pro_tit_top_forcombi").text(),
								price: r("#combiProductMarketPrice").text()
							}
						},
						"139shop-article": function() {
							return d(".rginfo dt a", 0, "139shop")
						},
						"zol-article": function() {
							return d(".nav-header>a ", 1, "zol")
						},
						"pconline-article": function() {
							return d(".navProWrap h3 a", 0, "pconline")
						},
						"yesky-article": function() {
							return d(".artitle h3 a", 0, "yesky")
						},
						"it168-article": function() {
							return d(".bj980 .bj1 div>a", 0, "it168")
						},
						"pcpop-article": function() {
							return d(".bj980 .bj1 a", 0, "pcpop")
						},
						"pchome-article": function() {
							return d(".navProWrap h3 a", 0, "pchome")
						},
						newegg: function() {
							var t = l();
							return t.name = r("#proCtner .proHeader h1").text(), t.price = r("#omHiddenPrice").val(), t.url = r(".proHeader h1 a").attr("href"), t.brand_string = r('.goods_info .goods_info_name:contains("牌")+.godds_info_data').text().replace(/\s/g, ""), t
						},
						"newegg-zhadan": function() {
							var t = l();
							return t.name = r(".proHeader h1 a").text(), t.url = r(".proHeader h1 a").attr("href"), t
						},
						yiwugou: function() {
							var t = l();
							return t.name = r("li.fontbold.tit").text(), t.price = parseFloat(r("#punitprice").text().replace(/\s/g, "")), t
						},
						zhiwo: function() {
							var t = l();
							return t.name = r(".mall_detail_prd_info .title").text(), t
						},
						"zhiwo-tuan": function() {
							var t = l();
							return t.name = r(".carousel li p").eq(0).text(), t
						},
						zol: function() {
							var t = l(),
								e = [],
								n = r(".product-merchant-price em").text();
							if ("" != n && n.match(/[0-9]+/) && n.indexOf("至") > -1 && (e = n.replace(/[ ]/g, "").split("至")), t.name = r(".product-name h3").text(), "" == t.name && (t.name = r(".ptitle").text()), "" == t.name && (t.name = r(".page-title.clearfix h1").text()), e.length > 0 && (t.min_price = e[0].substr(1), t.max_price = e[1].substr(1)), t.price = r(".price-type").text(), t.price.indexOf("万") > -1) {
								var i = t.price.match(/[0-9.]+/);
								i && (t.price = 1e4 * i[0])
							}
							return t.cat_name = r(".breadcrumb a").eq(1).text(), t.brand_string = r(".breadcrumb a").eq(2).text(), t
						},
						vmall: function() {
							var t = l();
							return t.name = r("#pro-name").text(), t
						},
						daling: function() {
							var t = l();
							return t.name = r(".goods-data h1.clearfix").text().replace(/\s/g, ""), t.price = r(".goods-price .clearfix .fl .bold").text(), t
						},
						fclub: function() {
							var t = l();
							try {
								t.name = r(".goods_introduce").text(), t.name = t.name.replace(/(?:\t|\n)/gi, ""), t.name = t.name.replace(/(?:\ \ |&nbsp;)/gi, " ")
							} catch (e) {
								o.debug && console.log(e)
							}
							if ("" == t.name) try {
								t.name = r('.tdleft:contains("商品名称")+.tdright').text().replace(/(\s)/g, ""), t.price = r("#priceFont").text()
							} catch (e) {
								o.debug && console.log(e)
							}
							return t
						},
						taoshu: function() {
							var t = l();
							try {
								t.isbn = r('.book_detailed span:contains("ISBN")').length > 0 ? r('.book_detailed span:contains("ISBN")').text().substr(5) : ""
							} catch (e) {
								o.debug && console.log(e), t.isbn = ""
							}
							return t
						},
						amazon: function() {
							var t = l(),
								e = "";
							try {
								var n = r('li:contains("ISBN")').text(),
									i = r('li:contains("条形码")').text(),
									a = r('li b:contains("ASIN")').parent("li").text();
								n = n ? n.substr(5) : "", i = i ? i.substr(4) : "", a = a ? a.substr(5) : "", e = "" == n ? i : "" == i ? n : n.length > i.length ? i : n, e = e || a, e = e.replace(/(\s)/g, "")
							} catch (s) {
								o.debug && console.log(s)
							}
							try {
								t.name = r("#btAsinTitle span").eq(0).text().replace(/(.*)<span.*/i, "$1")
							} catch (s) {
								o.debug && console.log(s), t.name = r("title").html()
							}
							return t.name = r("#productTitle").text(), t.isbn = e, t.brand_string = r("#brand").text(), t.price = r("#priceblock_ourprice").text().replace(/[￥¥]+/, ""), "" == t.price && (t.price = r("#priceblock_dealprice").text()), "" == t.price && (t.price = r("#priceblock_saleprice").text()), t
						},
						muyingzhijia: function() {
							var t = l();
							try {
								t.name = r("#name h1").text()
							} catch (e) {
								o.debug && console.log(e)
							}
							try {
								t.price = r("#summary-price .p-price").text().match(/[0-9.]+/)[0]
							} catch (e) {
								o.debug && console.log(e)
							}
							return t
						},
						dangdang: function() {
							var t = l();
							try {
								t.isbn = r('.book_detailed span:contains("I S B N")').html(), t.isbn = t.isbn.substr(8)
							} catch (e) {
								o.debug && console.log(e), t.isbn = ""
							}
							if ("" == t.isbn) try {
								t.isbn = r('.intro span:contains("I S B N")').text(), t.isbn = t.isbn.substr(8)
							} catch (e) {
								o.debug && console.log(e), t.isbn = ""
							}
							if ("" == t.isbn) try {
								t.isbn = r('.book_messbox .show_info_left:contains("ＩＳＢＮ")').next(".show_info_right").text()
							} catch (e) {
								o.debug && console.log(e), t.isbn = ""
							}
							if ("" == t.isbn) try {
								t.isbn = r('.book_messbox .show_info_left:contains("I S R C")').next(".show_info_right").text()
							} catch (e) {
								o.debug && console.log(e), t.isbn = ""
							}
							if ("" == t.isbn) try {
								t.isbn = r('.book_messbox span:contains("I S R C")').parent().text(), t.isbn = t.isbn.substr(7)
							} catch (e) {
								o.debug && console.log(e), t.isbn = ""
							}
							if ("" == t.isbn) {
								var n = r('#detail_describe li:contains("ISBN")').text().match(/[0-9]+/);
								n && (t.isbn = n[0])
							}
							return t.brand_string = r(".mall_goods_foursort_style_frame a").eq(0).text(), "" == t.brand_string && (t.brand_string = window.google_tag_params && window.google_tag_params.ecomm_pbrand), t.price = r("#salePriceTag").text(), t
						},
						"360buy-paimai": function() {
							var t = l();
							return t.price = r("#priceDiv").text().match(/[0-9.]+/)[0], t.name = r(".intro_detail .name").attr("title"), t
						},
						"360buy-book": function() {
							try {
								var t = r("title").text(),
									e = "";
								e = r("#summary-isbn .dd").text(), t = r("#name h1").html(), t.indexOf("<") > 0 && (t = t.substr(0, t.indexOf("<")))
							} catch (n) {
								o.debug && console.log(n)
							}
							try {
								e = e || r('li div:contains("ＩＳＢＮ")').text().substr(5), t = t || r("#name h2").html().replace(/(.*)<font.*/i, "$1")
							} catch (n) {
								o.debug && console.log(n)
							}
							return {
								name: t,
								isbn: e
							}
						},
						"360buy-tuan": function() {
							var t = l();
							t.name = t.name.replace(" - 京品惠团购", ""), o.site = "360buy";
							try {
								t.id = r("#PshowSkuid").val()
							} catch (e) {
								o.debug && console.log(e)
							}
							var n = r(".e-content h2").text();
							n.length > t.name.length && (t.name = n);
							try {
								var i = r(".e-extra .p-img a");
								i.length > 0 && !/^javascript:/.test(i.attr("href")) ? t.href = i.attr("href") : "undefined" != typeof r("#PshowSkuid").val() && (t.href = "http://item.jd.com/" + r("#PshowSkuid").val() + ".html")
							} catch (e) {
								o.debug && console.log(e)
							}
							try {
								t.url = r(".e-extra a").eq(0).attr("href"), t.url.indexOf("javascript") > -1 && (t.url = r(".img-info a").eq(0).attr("href"))
							} catch (e) {
								o.debug && console.log(e)
							}
							return t
						},
						"360buy-bigimage": function() {
							var t = "";
							if ("" == t) try {
								t = r(".o-m-1 h1 a").attr("href")
							} catch (e) {
								o.debug && console.log(e)
							}
							var n = r(".o-m-1 h1 a").eq(0).text();
							return {
								url: t,
								name: n,
								isbn: ""
							}
						},
						"360buy-club": function() {
							var t = "";
							if ("" == t) try {
								t = r(".p-name a").attr("href")
							} catch (e) {
								o.debug && console.log(e)
							}
							var n = r(".p-name a").eq(0).text();
							return {
								url: t,
								name: n,
								isbn: ""
							}
						},
						"360buy": function() {
							var t = l(),
								e = r("#name h1").html(),
								n = "";
							e.indexOf("<") > 0 && (e = e.substr(0, e.indexOf("<"))), n = r("#summary-isbn .dd").text(), n || (n = r("td:contains('ISBN号：')").text().match(/\d+/), n && (n = n[0])), n || (n = r("#product-detail li:contains('ISBN：')").text().match(/\d+/), n && (n = n[0])), n || (n = r("td:contains('ISBN号：')").text().substr(7)), t.name = e, t.isbn = n;
							var i = window.pageConfig && window.pageConfig.product && window.pageConfig.product.brand;
							0 != i && (t.brand_string = r('#root-nav a[href*="' + i + '"]').text()), t.price = r("#jd-price").text().replace(/[￥¥]+/, "");
							for (var a = [], o = r("body").attr("class").match(/cat\-\d\-([0-9]+)/g), s = 0; s < o.length; s++) a.push(o[s].match(/\d\-([0-9]+)/)[1]);
							return t.cat_id = a.join("-"), t
						},
						"360buy-re": function() {
							var t = l();
							return t
						},
						"360buy-auction": function() {
							var t = l();
							return t.name = r("#product-intro .p-info h1").text(), t.price = r("#cur_price").text().match(/[0-9.]+/)[0], t
						},
						fglady: function() {
							return {
								name: r(".pd-content-left table tbody").children("tr").eq(1).children("td").eq(0).children("div").eq(0).text(),
								isbn: ""
							}
						},
						ouku: function() {
							var t = l();
							return t.name = r(".prod-info-title h1").text(), t.brand_string = r('.specTitle .strong-title:contains("品牌")+.inline span').text(), t.price = r(".sale-price").text().replace(/[￥¥\s]+/g, ""), t
						},
						"6pm": function() {
							var t = l();
							return t.name = r("#productStage .title").text(), t.brand_string = r("#productStage .title .brand").text(), t.price = r("#priceSlot .price").text(), t
						},
						kimiss: function() {
							var t = "";
							try {
								t = r(".preview_title h1 a").text()
							} catch (e) {
								o.debug && console.log(e)
							}
							var n = r(".preview_brief em").text();
							n.indexOf("-") > -1 && (n = n.split("-")[0]);
							var i = r(".preview_brief").text().match(/产品规格：(.*)/);
							return i && (i = i[1]), i.indexOf("-") > -1 && (i = i.split("-")[0]), t += i, "" == t && (t = r(".title h1").text()), {
								name: t,
								price: n,
								isbn: ""
							}
						},
						redbaby: function() {
							return {
								name: r("#pName").text(),
								isbn: ""
							}
						},
						m18: function() {
							return {
								name: r(".goods_detail .name").text(),
								isbn: ""
							}
						},
						w1: function() {
							return {
								name: r(".title h1").text(),
								isbn: ""
							}
						},
						sephoracps: function() {
							return {
								name: r(".sdTitleL h1").text(),
								isbn: ""
							}
						},
						bookuu: function() {
							var t = l();
							try {
								t.name = r(".shop-text-info h2").text(), t.price = r('.wj-meta span:contains("博库价")~strong').text();
								var e = r("meta[name=keywords]")[0].getAttribute("content");
								t.isbn = /ISBN：(\d+)/.exec(e)[1]
							} catch (n) {
								o.debug && console.log(n)
							}
							return t
						},
						secoo: function() {
							var t = l();
							try {
								t.price = r(".Dprice").text().replace(/(¥|,)/g, ""), t.name = r(".proName h2").text()
							} catch (e) {
								o.debug && console.log(e)
							}
							return t
						},
						lafaso: function() {
							var t = r("#pname").text();
							return ("undefined" == typeof t || "" == t) && (t = r("title").html()), {
								name: t,
								isbn: ""
							}
						},
						s: function() {
							return {
								name: r(".goodsname").text(),
								isbn: ""
							}
						},
						letao: function() {
							return {
								name: r("#buyinfo h1").text(),
								isbn: ""
							}
						},
						buy007: function() {
							return {
								name: r("#info_right table tbody").children("tr").eq(0).children("td").eq(0).children("h1").eq(0).text(),
								isbn: ""
							}
						},
						taoxie: function() {
							return {
								name: r(".detail").children("div").eq(0).children("h2").eq(0).text(),
								isbn: ""
							}
						},
						suning: function() {
							var t, e = c("input[name=returnURL]", 0, "value", "suning"),
								n = r("title").html();
							if (t || (t = r('#total dt:contains("I")').next().eq(0).text(), t = t.match(/(?:\d{13}|\d{10}|\d{8})/gi), t && (t = t[0])), t || (t = r('.book-info span:contains("I")').next().eq(0).text(), t = t.match(/(?:\d{13}|\d{10}|\d{8})/gi), t && (t = t[0])), t || (t = r('#bookParameterField dl:contains("ISBN")').text().match(/[0-9]+/), t && (t = t[0])), !e.url) {
								var i = window.sn.productId;
								e.url = "http://www.suning.com/emall/prd_10052_10051_-7_" + i + "_.html"
							}
							return e.name = n, e.isbn = t, e.brand_string = window.sn && window.sn.brandName || "", e.price = window.sn && window.sn.promotionPrice || 0, e.name = window.sn && window.sn.itemDisplayName, e
						},
						"suning-ju": function() {
							var t = {};
							return t.url = "http://www.suning.com/emall/prd_10052_10051_-7_" + r("#itemId").attr("value") + "_.html", t.name = r("h1 a").text(), t
						},
						"suning-book-new": function() {
							var t = c("input[name=returnURL]", 0, "value", "suning"),
								e = r("title").html(),
								n = "";
							try {
								n = r('#total dt:contains("I")').next().eq(0).text();
								var i = n.match(/(?:\d{13}|\d{10}|\d{8})/gi);
								n = null != i ? i[0] : ""
							} catch (a) {
								o.debug && console.log(a), n = ""
							}
							if ("" == n) try {
								n = r('.book-info span:contains("I")').next().eq(0).text();
								var i = n.match(/(?:\d{13}|\d{10}|\d{8})/gi);
								n = null != i ? i[0] : ""
							} catch (a) {
								o.debug && console.log(a), n = ""
							}
							return t.name = e, t.isbn = n, t
						},
						"suning-snbook": function() {
							var t = c("input[name=returnURL]", 0, "value", "suning");
							return t.name = r(".brief-info h1 strong").text(), t.isbn = r(".parm-isbn span.attr-v").text(), t
						},
						"suning-dgf": function() {
							var t = this,
								e = t.getProductInfo();
							try {
								var i = r(".detail-first h1.title a").eq(0);
								if (e.name = r(".detail-first h1.title a span strong").text(), o.href = i.attr("href"), o.site = "suning", "undefined" == typeof o.href || "" == o.href) e.useless = !0;
								else {
									var a = n.isProductPage();
									a || (e.useless = !0)
								}
							} catch (s) {
								o.debug && console.log(s), e.useless = !0
							}
							return e
						},
						"suning-qiang": function() {
							var t = d(".product-main-title h1 a", 0, "suning");
							try {
								var e = r("#catentry").val();
								e && (o.href = "http://www.suning.com/emall/prd_10052_10051_-7_" + e + "_.html")
							} catch (n) {
								o.debug && console.log(n)
							}
							return t
						},
						"suning-pai": function() {
							var t = c("input[name=returnURL]", 0, "value", "suning"),
								e = r(".fb-main-title a").text(),
								n = "",
								i = "";
							try {
								i = r(".fb-main-title a").attr("href")
							} catch (a) {
								o.debug && console.log(a)
							}
							try {
								n = r('#total dt:contains("I")').next().eq(0).text();
								var s = n.match(/(?:\d{13}|\d{10}|\d{8})/gi);
								n = null != s ? s[0] : ""
							} catch (a) {
								o.debug && console.log(a)
							}
							return t.name = e, t.isbn = n, t.url = i, t
						},
						coo8: function() {
							return {
								name: r("#productname h1").children("strong").eq(0).text(),
								isbn: ""
							}
						},
						lusen: function() {
							return {
								url: "http://www.lusen.com/Product/ProductInfo.aspx?id=" + r("#ProductId").val(),
								name: r("h1.goodsname").text(),
								isbn: ""
							}
						},
						"gome-rushbuy": function() {
							var t = "";
							try {
								t = r(".pic a").eq(0).attr("href")
							} catch (e) {
								o.debug && console.log(e)
							}
							return {
								name: r(".product-info .name").text(),
								isbn: "",
								url: t
							}
						},
						gomehone: function() {
							var t = l();
							return t.price = r("#prdPrice").text().match(/[0-9.]+/)[0], t.name = r(".prdmain .prdtit").text(), t
						},
						gome: function() {
							var t = l(),
								e = "",
								n = r("title").html();
							try {
								e = r('.bookpub p:contains("I S B N") span').text(), n = r("#prdtitle h2").text()
							} catch (i) {
								o.debug && console.log(i)
							}
							try {
								e = e ? e : r('#detailHtml td:contains("ISBN")').next().text(),
									n = n ? n : r(".prdinfo .prdtit").text()
							} catch (i) {
								o.debug && console.log(i)
							}
							try {
								e = e ? e : r('.specinfo:contains("ISBN")').next().text(), n = n ? n : r(".prdinfo .prdtit").text()
							} catch (i) {
								o.debug && console.log(i)
							}
							return t.name = n, t.isbn = e, "" == n && (t.name = window.prdInfo && window.prdInfo.prdName), t.price = window.prdInfo && window.prdInfo.price, t.brand_string = window.prdInfo && window.prdInfo.breadName, t
						},
						"gome-q": function() {
							var t = l();
							return t.name = r("h1.title").text(), t.url = r(".pro_link")[0].href, t
						},
						"gome-tao": function() {
							var t = l();
							return t.name = r(".prdtit").text(), t.price = parseInt(r("#prdPrice").text().match(/[0-9]+/)[0]), t
						},
						"gome-tuan": function() {
							var t = l();
							return t.url = r(".compare-link").attr("href"), t.name = r("title").html(), t.price = r("#salePrice").text(), t
						},
						yihaodian: function() {
							var t = l(),
								e = "";
							try {
								r("#productId").length ? e = r("#productId").val() : r("#productCode").length ? e = parseInt(r("#productCode").text().slice(0, -1)) : r("#mainProductId").length ? e = r("#mainProductId").val() : r(".specific_detail p span").length && (e = parseInt(r(".specific_detail p span").text().match(/\d+$/)[0].slice(0, -1)))
							} catch (n) {
								o.debug && console.log(n)
							}
							var i = "";
							try {
								i = r("#productMainName").text();
								var a = i.indexOf("<");
								a > 0 && (i = i.substr(0, a))
							} catch (n) {
								o.debug && console.log(n), i = ""
							}
							if ("" == i) try {
								i = r(".main_info_con p.price").prev().eq(0).text()
							} catch (n) {
								o.debug && console.log(n), i = ""
							}
							"" == i && (i = r(".pro_tit").text());
							var s = "";
							try {
								s = r('#prodDetailCotentDiv dd:contains("ISBN")').text().substr(5), s = r.trim(s)
							} catch (n) {
								o.debug && console.log(n)
							}
							return t.brand_string = r("#brandName").val(), t.price = r("#current_price").text().replace(/[￥¥]+/, ""), t.isbn = s, t.name = i, t.id = e, t
						},
						"yihaodian-tuan": function() {
							var t = "",
								e = "";
							try {
								t = r("#detailDiv h2").eq(0).text(), e = r("#productId").val(), "" == e && (e = r("#mainProductId").val())
							} catch (n) {
								o.debug && console.log(n)
							}
							return "" == t && (t = r("title").text().replace(/.{2}团购_1号团_1号店官网/, "")), {
								name: t,
								isbn: "",
								id: e
							}
						},
						womai: function() {
							var t = l();
							t.name = "";
							try {
								var e = r(".main_detail").eq(0).html().match(/var _title = "([^"]+)"/);
								t.name = e[1]
							} catch (n) {
								o.debug && console.log(n), t.name = ""
							}
							if (t.price = r(".buyPrice").text(), "" == t.name) try {
								t.name = r(".WrapTit").text()
							} catch (n) {
								o.debug && console.log(n)
							}
							try {
								t.name = window.rtTag.data.ecom_view.prod[0].p_name, t.price = window.rtTag.data.ecom_view.prod[0].p_price, t.brand_string = window.rtTag.data.ecom_view.prod[0].p_brand
							} catch (n) {
								o.debug && console.log(n)
							}
							return t
						},
						coocaa: function() {
							return {
								name: "酷开 " + r(".proHeader h1").text()
							}
						},
						leyou: function() {
							var t = l();
							return t.name = r("#baseInfoDiv h3").text(), t.price = r(".item_rmb .font_num").text(), t
						},
						shopin: function() {
							var t = r.trim(r(".crumbs").text()),
								e = r.trim(r(".product-list h2").text());
							return t = t.replace(/(?:\u5f53\u524d\u4f4d\u7f6e|\u9996\u9875|-)/, "", t), {
								name: t + " " + e,
								isbn: ""
							}
						},
						xiu: function() {
							var t = "";
							try {
								t = r(".p_title span h1").text()
							} catch (e) {
								o.debug && console.log(e)
							}
							return {
								name: t,
								isbn: ""
							}
						},
						"xiu-tuan": function() {
							return {
								name: r(".xit_xqzgong h2").text(),
								isbn: ""
							}
						},
						vjia: function() {
							return {
								name: r(".sp-singleName .title").text(),
								isbn: ""
							}
						},
						"7cv": function() {
							return {
								name: r(".main_right_top").text(),
								isbn: ""
							}
						},
						x: function() {
							return {
								name: r("p.top_name").text(),
								isbn: ""
							}
						},
						guopi: function() {
							return {
								name: r("#p_name").text(),
								isbn: ""
							}
						},
						no5: function() {
							var t = r(".part01 .p01_r h2").html();
							return t.indexOf("<") > 0 && (t = t.substr(0, t.indexOf("<"))), {
								name: t,
								isbn: ""
							}
						},
						sasa: function() {
							var t = r(".txt_16px_b_666666").text(),
								e = r(".txt_16px_n_666666").text();
							return e.replace("<br>", ""), {
								name: t + e,
								isbn: ""
							}
						},
						dhc: function() {
							return {
								name: r("head title").text(),
								isbn: ""
							}
						},
						"9dadao": function() {
							return {
								name: r(".pra h2").text(),
								isbn: ""
							}
						},
						metao: function() {
							return {
								name: r(".pib_title_detail").text()
							}
						},
						kzj365: function() {
							var t = r("title").text(),
								e = t.indexOf("_");
							return {
								name: t.slice(0, e)
							}
						},
						nubia: function() {
							var t = r("title").text(),
								e = t.indexOf("】");
							return -1 === e && (e = 0), {
								name: t.slice(e)
							}
						},
						ymatou: function() {
							var t = r("meta[name=description]").attr("content"),
								e = t.indexOf("”");
							return {
								name: t.slice(1, e)
							}
						},
						kaola: function() {
							return {
								name: r(".product-title").text()
							}
						},
						"360kxr": function() {
							var t = r(".right-intro h2").html();
							return t = t.indexOf("<") > 0 ? t.substr(0, t.indexOf("<")) : t, {
								name: t,
								isbn: ""
							}
						},
						likeface: function() {
							return {
								name: r(".tCtn h1").text(),
								isbn: ""
							}
						},
						qxian: function() {
							return {
								name: r(".product_body1_right_title h1").text(),
								isbn: ""
							}
						},
						didamall: function() {
							return {
								name: r(".product-name").text(),
								isbn: ""
							}
						},
						yaodian100: function() {
							return {
								name: r(".infoboxheader h1").text(),
								isbn: ""
							}
						},
						lijiababy: function() {
							var t = r("#txtproname").text();
							return ("undefined" == typeof t || "" == t) && (t = r("#lbl_proname").text()), {
								name: t,
								isbn: ""
							}
						},
						"99read": function() {
							var t = l();
							return t.isbn = r('li:contains("产品条码")').html(), t.isbn = null == t.isbn || "undefined" == typeof t.isbn || "" == t.isbn ? "" : t.isbn.substr(7), t
						},
						"china-pub": function() {
							return {
								name: r("h1.black15c").text(),
								isbn: r('li:contains("ISBN")').children("strong").eq(0).html()
							}
						},
						bookschina: function() {
							var t = l();
							try {
								t.name = r(".this-pic").prev().text(), t.name = r.trim(t.name)
							} catch (e) {
								o.debug && console.log(e), t.name = ""
							}
							try {
								t.isbn = r('tr:contains("出版时间：")').children().eq(1).text(), t.isbn = r.trim(t.isbn)
							} catch (e) {
								o.debug && console.log(e), t.isbn = ""
							}
							return t
						},
						"bookschina-tuan": function() {
							var t = l();
							try {
								t.name = r(".titword").text().match(/《([^》]+)/)[1], t.price = r(".pricetime .pright .Mbig").text()
							} catch (e) {
								o.debug && console.log(e)
							}
							try {
								t.isbn = r('.comments:contains("ISBN")').text().match(/ISBN：([0-9]+)/)[1]
							} catch (e) {
								o.debug && console.log(e), t.isbn = ""
							}
							if ("" == t.isbn) try {
								t.isbn = r(".comments").text().match(/[0-9]{13}/)[0]
							} catch (e) {
								o.debug && console.log(e)
							}
							return t
						},
						efeihu: function() {
							var t = l();
							t.name = r(".share_title em").text();
							var e = r(".box_wrap .price .a p").text().match(/[0-9]+/);
							return e && (t.price = e[0]), t
						},
						yintai: function() {
							return {
								name: r(".p-tit").text(),
								isbn: ""
							}
						},
						urcosme: function() {
							return {
								name: r(".productInformationText h1").text(),
								isbn: ""
							}
						},
						strawberrynet: function() {
							return {
								name: r(".product-frame h1").text() + r(".product-frame h2").text(),
								isbn: ""
							}
						},
						luce: function() {
							return {
								name: r(".Product_Detail ul").children("li").eq(0).children("p").eq(0).text(),
								isbn: ""
							}
						},
						k121: function() {
							return {
								name: r(".newproductname0").text(),
								isbn: ""
							}
						},
						happigo: function() {
							return {
								name: r(".goodscr-name a").text(),
								isbn: ""
							}
						},
						gap: function() {
							return {
								name: r(".product-name h1").text(),
								isbn: ""
							}
						},
						misslele: function() {
							return {
								name: r("#goods_name").text(),
								isbn: ""
							}
						},
						all3c: function() {
							return {
								name: r(".buyinfo h1").text(),
								isbn: ""
							}
						},
						idaphne: function() {
							return {
								name: r(".title").text(),
								isbn: ""
							}
						},
						binggo: function() {
							for (var t = r("#pName h1").html(), e = t.length, n = 0; e > n && "<" != t[n]; n++);
							return {
								name: t.substr(0, n),
								isbn: ""
							}
						},
						"taobao-ju": function() {
							var t = l(),
								e = /item_id=(\d+)/gi.exec(location.href);
							return t.id = e && 2 == e.length && e[1], t.name = r.trim(r(".main-box h2").text()), t
						},
						tmall: function() {
							var t = l(),
								e = r(".attributes-list ul").html(),
								n = "",
								i = "";
							null == e && (e = r(".attributes-list").html());
							try {
								e = e.replace(/(?:<\!\-\-[^\-]*\-\->|<li[^>]*>|\ \ )/gi, ""), e = e.replace(/&nbsp;/gi, " "), e = e.replace(/<\/li[^>]*>/gi, "|"), e = e.replace(/\n/gi, "")
							} catch (a) {
								o.debug && console.log(a)
							}
							try {
								for (var s = e.match(new RegExp(/\|(\u54c1\u724c(?:\:|\uff1a)[^\|]+)/gi)), d = 0; d < s.length; d++) n += s[d] + "|"
							} catch (a) {
								o.debug && console.log(a)
							}
							try {
								for (var c = e.match(new RegExp(/((?:\u7cfb\u5217|\u8d27\u53f7|\u578b\u53f7|\u6b3e\u53f7)(?:\:|\uff1a)[^\|]+)/gi)), d = 0; d < c.length; d++) n += c[d] + "|"
							} catch (a) {
								o.debug && console.log(a)
							}
							try {
								for (var p = e.match(new RegExp(/(ISBN[^\:\uff1a]*(?:\:|\uff1a)[^\|]+)/gi)), d = 0; d < p.length; d++) n += p[d] + "|"
							} catch (a) {
								o.debug && console.log(a)
							}
							t.skeyword = n, t.cat_id = "";
							try {
								var h = r("#tb-beacon-aplus").attr("exparams");
								h = h.match(/category=item%5f(\d+)&/), h = h[1], t.cat_id = h
							} catch (a) {
								o.debug && console.log(a)
							}
							if ("" == t.cat_id) try {
								var h = r("#detail-recommend-viewed").attr("data-catid");
								t.cat_id = h
							} catch (a) {
								o.debug && console.log(a)
							}
							try {
								t.pic = r("#J_ImgBooth").attr("src")
							} catch (a) {
								o.debug && console.log(a)
							}
							try {
								var u = r("meta[name='microscope-data']").attr("content").match(/userid=(\d+)/);
								i = u[1]
							} catch (a) {
								o.debug && console.log(a)
							}
							var g = r("#J_Price").text();
							return g || (g = r("#J_StrPrice").text()), g || (g = r(".tm-promo-price .tm-price").text()), g || (g = r(".tm-price").text()), t.price = g, t.userid = i, t.name = r("#J_DetailMeta .tb-detail-hd h1").text().replace(/\n/g, ""), t
						},
						taobao: function() {
							var t = l(),
								e = r(".attributes-list ul").html(),
								n = "",
								i = "";
							null == e && (e = r(".attributes-list").html());
							try {
								e = e.replace(/(?:<\!\-\-[^\-]*\-\->|<li[^>]*>|\ \ )/gi, ""), e = e.replace(/&nbsp;/gi, " "), e = e.replace(/<\/li[^>]*>/gi, "|"), e = e.replace(/\n/gi, "")
							} catch (a) {
								o.debug && console.log(a)
							}
							try {
								for (var s = e.match(new RegExp(/\|(\u54c1\u724c(?:\:|\uff1a)[^\|]+)/gi)), d = 0; d < s.length; d++) n += s[d] + "|"
							} catch (a) {
								o.debug && console.log(a)
							}
							try {
								for (var c = e.match(new RegExp(/((?:\u7cfb\u5217|\u8d27\u53f7|\u578b\u53f7|\u6b3e\u53f7)(?:\:|\uff1a)[^\|]+)/gi)), d = 0; d < c.length; d++) n += c[d] + "|"
							} catch (a) {
								o.debug && console.log(a)
							}
							try {
								for (var p = e.match(new RegExp(/(ISBN[^\:\uff1a]*(?:\:|\uff1a)[^\|]+)/gi)), d = 0; d < p.length; d++) n += p[d] + "|"
							} catch (a) {
								o.debug && console.log(a)
							}
							t.skeyword = n, t.cat_id = r("#J_Pine").attr("data-catid");
							try {
								t.pic = r("#J_ImgBooth").attr("src")
							} catch (a) {
								o.debug && console.log(a)
							}
							try {
								var h = r("meta[name='microscope-data']").attr("content").match(/userid=(\d+)/);
								i = h[1]
							} catch (a) {
								o.debug && console.log(a)
							}
							try {
								var u = r("#J_Price").text()
							} catch (a) {
								o.debug && console.log(a);
								var u = r("##J_StrPrice").text()
							}
							return t.price = u, t.userid = i, t
						},
						"taobao-spu": function() {
							return {
								name: r("#detail .detail-hd h3").text(),
								isbn: ""
							}
						},
						xijie: function() {
							return {
								name: r(".detail_sh_right h1").text(),
								isbn: ""
							}
						},
						caomeipai: function() {
							return {
								name: r("#pro_name h2").text(),
								isbn: ""
							}
						},
						dahuozhan: function() {
							return {
								name: r(".property h2").text(),
								isbn: ""
							}
						},
						huolida: function() {
							return {
								name: r(".h1_title h1").text(),
								isbn: ""
							}
						},
						"12dian": function() {
							return {
								name: r(".goodstitle").text(),
								isbn: ""
							}
						},
						111: function() {
							var t = l();
							return t.name = r(".detailnav span").last().text(), t.price = window._BFD.BFD_INFO.price, t
						},
						daoyao: function() {
							return {
								name: r(".product_1_4 .d_table_3 .font_01").text(),
								isbn: ""
							}
						},
						douban: function() {
							var t = r("#info").html(),
								n = "";
							try {
								var i = t.indexOf("ISBN:"),
									a = t.length;
								for (i += 12; a > i; i++) t[i] >= "0" && t[i] <= "9" && (n += t[i])
							} catch (s) {
								o.debug && console.log(e)
							}
							var d = window.location.href.toString(),
								c = d.match(/gwd_isbn=(\d+)/);
							if ("" == n) try {
								n = c[1]
							} catch (s) {
								o.debug && console.log(e), n = ""
							}
							var p = l();
							return p.isbn = n, p
						},
						"douban-dongxi": function() {
							var t = l();
							return t.title = r(".commodity-name a").text(), t
						},
						it168: function() {
							return {
								name: r(".title100 h1").text(),
								isbn: ""
							}
						},
						pconline: function() {
							return {
								name: r(".pro-tit .name").text(),
								isbn: ""
							}
						},
						pcpop: function() {
							return {
								name: r(".tit1 h1").text(),
								isbn: ""
							}
						},
						yoka: function() {
							return {
								name: r(".pInfo_c2_lu h2").text(),
								isbn: ""
							}
						},
						"55bbs": function() {
							return {
								name: r(".cpjsright_name h1").text(),
								isbn: ""
							}
						},
						onlylady: function() {
							return {
								name: r(".bnnaer_text").text(),
								isbn: ""
							}
						},
						"24dq": function() {
							return {
								name: r(".goodsname").text(),
								isbn: ""
							}
						},
						lingshi: function() {
							return {
								name: r("#detail_bb h3").text(),
								isbn: ""
							}
						},
						onlyts: function() {
							return {
								name: r("#bread .last").eq(1).text(),
								isbn: ""
							}
						},
						winxuan: function() {
							var t = "";
							try {
								t = r('li:contains("I S B N：")').text().substr(8)
							} catch (e) {
								o.debug && console.log(e), t = ""
							}
							var n = "";
							try {
								n = r("meta[name='keywords']").attr("content")
							} catch (e) {
								o.debug && console.log(e)
							}
							return {
								name: n,
								isbn: t
							}
						},
						beifabook: function() {
							var t = r("#LabelISBN").text();
							return t = t.replace(/-/g, ""), {
								name: r("#LabelTitle").text(),
								isbn: t
							}
						},
						"sina-tech": function() {
							var t = r(".zcblk02 h2").html();
							return !("undefined" != typeof t && "" != t && null != t || (t = r(".PartATitle h2").html(), "undefined" != typeof t && "" != t && null != t || (t = r(".Info h2").html(), "undefined" != typeof t && "" != t && null != t || (t = r(".product-name h1").html(), "undefined" != typeof t && "" != t && null != t || !(t = r("title").html().substr(0, r("title").html().indexOf("_"))))))), t.indexOf("<") > 0 && (t = t.substr(0, t.indexOf("<"))), t = t.replace("&nbsp;", ""), {
								name: t,
								isbn: ""
							}
						},
						"sina-baby": function() {
							return {
								name: r(".dp_info_title").text(),
								isbn: ""
							}
						},
						"sina-eladies": function() {
							return {
								name: r(".blk01 h1").text(),
								isbn: ""
							}
						},
						"sohu-it": function() {
							return {
								name: r(".til h2").text(),
								isbn: ""
							}
						},
						"sohu-women": function() {
							return {
								name: r(".r h2 span").text(),
								isbn: ""
							}
						},
						"163-digi": function() {
							var t = r(".colA h3").text();
							return ("undefined" == typeof t || null == t || "" == t) && (t = r(".colA h1").text()), {
								name: t,
								isbn: ""
							}
						},
						"163-lady": function() {
							return {
								name: r(".detailbox-main h1").text(),
								isbn: ""
							}
						},
						"qq-digi": function() {
							var t = r(".top_hd h2").text();
							return ("undefined" == typeof t || "" == t || null == t) && (t = r(".font0751 span").text()), {
								name: t,
								isbn: ""
							}
						},
						"qq-hea": function() {
							var t = r("#pdShow h1").text();
							return ("undefined" == typeof t || "" == t || null == t) && (t = r("#pdShow .longName").text()), {
								name: t,
								isbn: ""
							}
						},
						"qq-lady": function() {
							var t = r(".pro_info .title").text();
							return {
								name: t,
								isbn: ""
							}
						},
						vipshop: function() {
							var t = function() {
									var t;
									if (window.O_viewed) t = {
										cat_id: window.O_viewed.category_id,
										cat_name: window.O_viewed.category_name
									};
									else {
										var e = r("#J-bottom-adCode").next().text();
										e || (e = r("#J_topbar_pop_template").next().text()), e = /var O_viewed = {([\s\S]*?)}/.exec(e), e && (e = e[1]);
										var n = /'category_id' : '(\d+)'/.exec(e);
										n && (n = n[1]);
										var i = /'category_name' : '(.*?)'/.exec(e);
										i && (i = i[1]), t = {
											cat_name: i,
											cat_id: n
										}
									}
									return t
								},
								e = t(),
								n = "";
							try {
								n = r(".bt_layout li:contains('商品名称') .bt_lt_par_p").text()
							} catch (i) {
								o.debug && console.log(i)
							}
							if ("" == n) try {
								n = r.trim(r(".pro_info .goods_protit").text())
							} catch (i) {
								o.debug && console.log(i)
							}
							if ("" == n) try {
								n = r(".bt_title").text().replace(/(?:\n|\t|\s)/gi, "")
							} catch (i) {
								o.debug && console.log(i)
							}
							return {
								price: r(".pbox-price em").text(),
								name: n,
								isbn: "",
								cat_id: e.cat_id,
								cat_name: e.cat_name,
								brand_string: r(".pib-title-class a").text()
							}
						},
						j1: function() {
							return {
								name: r(".productarea-right-1 H1").text(),
								isbn: ""
							}
						},
						yougou: function() {
							var t = l();
							return t.name = r(".goodsCon  .f16").text(), "" == t.name && (t.name = r(".goodsCon h1").text().replace(/\s/g, "")), t
						},
						jxdyf: function() {
							return {
								name: r(".product .pro_name").text(),
								isbn: ""
							}
						},
						yaofang: function() {
							var t = r(".pro_title").html();
							return t.indexOf("<") > 0 && (t = t.substr(0, t.indexOf("<"))), {
								name: t,
								isbn: ""
							}
						},
						tiantian: function() {
							return {
								name: r(".detail_mbx .c_ed").text(),
								isbn: ""
							}
						},
						"tiantian-tuan": function() {
							var t = l();
							try {
								t.name = r('td:contains("商品名称")+td span').text(), t.price = r(".buy_pri").text().match(/[0-9.]+/)[0]
							} catch (e) {
								o.debug && console.log(e)
							}
							return t
						},
						yiguo: function() {
							return {
								name: r.trim(r(".main .cpname h1").text()),
								isbn: ""
							}
						},
						jiuxian: function() {
							var t = l();
							return t.name = r(".dmainBox .detail-depict .depict-name h1").text(), "" == t.name && (t.name = r(".detailName h2").text().replace("(私人定制)", "")), t.price = r("#_nowPriceStr").text(), t
						},
						"meilele-tuan": function() {
							var t = l();
							t.name = r("#JS_tg_goods_name").text();
							var e = r("#JS_bnr_state").text().match(/[0-9]+/);
							return e && (t.price = e[0]), t
						},
						ehaier: function() {
							var t = l();
							return t.name = r(".a-product-title").text(), t.price = r(".pricetag .cur-price").text().match(/[0-9]+/)[0], t
						},
						ule: function() {
							var t = l();
							return t.name = r(".productInfo h1").text(), t.price = r(".productPrice .price strong").text(), t
						},
						esprit: function() {
							var t = l();
							return t.name = r("#itemName").text().replace(/\s/g, ""), t.price = r("#pdpPrice").text().replace(/[￥¥]+/, ""), t
						},
						lining: function() {
							var t = l();
							return t.name = r("#product_name").text().replace(/\s/g, ""), t.price = r("#offerPrice .v").text().replace(/[\s￥¥]/g, ""), t
						},
						oyeah: function() {
							var t = "";
							try {
								t = r("meta[name='Keywords']").attr("content")
							} catch (e) {
								o.debug && console.log(e)
							}
							return {
								name: t,
								isbn: ""
							}
						},
						lvyoumall: function() {
							return {
								name: r("meta[name='keywords']").attr("content"),
								isbn: ""
							}
						},
						lefeng: function() {
							var t = "",
								e = "";
							try {
								t = r.trim(r(".path").text().split("/").pop()), e = "http://product.lefeng.com/product/" + r("#productId").val() + ".html"
							} catch (n) {
								o.debug && console.log(n)
							}
							return {
								url: e,
								name: t,
								isbn: ""
							}
						},
						wbiao: function() {
							var t = l();
							try {
								t.name = r("#info_on_sale h1").text(), t.price = r("#price").text().match(/[0-9.]+/)[0]
							} catch (e) {
								o.debug && console.log(e)
							}
							return t
						},
						banggo: function() {
							var t = l();
							try {
								t.name = r(".mbshop_detail_pdbrand a").text() + r(".mbshop_detail_pdname").text().replace(/\s/g, ""), t.price = r("#salePriceText").text().match(/[0-9.]+/)[0]
							} catch (e) {
								o.debug && console.log(e)
							}
							return t
						},
						yohobuy: function() {
							var t = l();
							try {
								t.price = r(".price-sale").text().match(/[0-9.]+/)[0]
							} catch (e) {
								o.debug && console.log(e)
							}
							return t
						},
						sundan: function() {
							return {
								name: r("#buy_form div.box>div.ng-info>h2").text(),
								price: r("#buy_form div.box>div.ng-size span.price").text()
							}
						}
					}
				}
			}.call(n, i, n, t), !(void 0 !== a && (t.exports = a))
		}).call(n, i(1))
	},
	function(t, e, n) {
		(function(e) {
			"use strict";
			t.exports = function(t) {
				if (t) {
					t = t.toString(), t = t.replace(/^[^\d]+/gi, ""), t = t.replace(/￥/gi, ""), t = a(t), t = t.replace(/,/gi, ""), t = e.trim(t);
					var n = t.indexOf("-");
					return n > 0 && (t = t.substr(0, n)), t = t.replace(/^(\d+\.)\<.+\>(\d{0,2})\<\/.+\>/gi, "$1$2"), t = i(t), parseFloat(t) > 0 ? t = parseFloat(t) : 0
				}
			};
			var n = {
					"www.amazon.com": 6.3565,
					"www.amazon.co.jp": .0528,
					"www.amazon.de": 7.0519,
					"www.6pm.com": 6.3565
				},
				i = function(t) {
					var e = location.host;
					return n[e] ? parseFloat((Number(t) * n[e]).toFixed(2)) : t
				},
				a = function(t) {
					var e = location.host;
					return "www.amazon.de" == e && -1 == location.href.indexOf("language=en_GB") && (t = t.replace(".", "").replace(",", ".")), t
				}
		}).call(e, n(12))
	},
	function(t, e, n) {
		(function(e) {
			"use strict";
			var i = n(12),
				a = function(t) {
					if (!t) throw new Error("url 不能为空");
					var n = "?",
						i = "callback=?&";
					t.indexOf("?") > -1 && (n = "&");
					var a, o = "format=jsonp&";
					return (e.chrome_extension || e.maxthon_tmall) && (a = !0), a && (i = "", o = "format=json&"), "" + t + n + i + o
				};
			t.exports.raw = function(t) {
				var e, n = {
						done: function(t) {
							e = t
						}
					},
					i = new XMLHttpRequest;
				return i.addEventListener("load", function() {
					e && e(i.responseText)
				}), i.open("GET", t, !0), i.send(), n
			}, t.exports.get = function(t) {
				return t = a(t) + "union=" + e.union + "&version=" + e.version + "&from_device=" + e.from_device, i.getJSON(t)
			}, t.exports.getPure = function(t) {
				return t = a(t), i.getJSON(t)
			}
		}).call(e, n(1))
	},
	function(t, e, n) {
		var i;
		(function(a) {
			"use strict";
			i = function() {
				var t = void 0,
					e = n(18);
				return function(n) {
					clearTimeout(t), t = setTimeout(function() {
						n || (n = "");
						var t = "img_random" + Math.random(),
							i = window[t] = new Image;
						i.onload = i.onerror = function() {
							window[t] = null
						}, i.src = a.server + "/visit/?version=" + a.version + "&ab=" + e.get("ab") + "&uuid=" + e.get("uuid") + "&from_device=" + a.from_device + "&permanent_id=" + e.get("p_id") + "&random=" + Math.random() + "&action=" + n
					}, 500)
				}
			}.call(e, n, e, t), !(void 0 !== i && (t.exports = i))
		}).call(e, n(1))
	},
	function(t, e, n) {
		var i;
		i = function() {
			var t = {},
				e = {};
			return t.get = function(t) {
				return e[t]
			}, t.set = function(t, n) {
				void 0 === n && t ? e = t : e[t] = n
			}, t
		}.call(e, n, e, t), !(void 0 !== i && (t.exports = i))
	},
	function(t, e) {
		"use strict";

		function n(t) {
		}
		var i = void 0,
			a = void 0;
		t.exports.init = function(t) {
			t && n(t)
		}, t.exports.log = function(t, e, n, o, r) {
			a && (clearTimeout(i), i = setTimeout(function() {
				window._czc && window._czc.push && (e = e || ".", n = n || "", window._czc.push(["_trackEvent", t, e, n, o, r]))
			}, 300))
		}
	},
	function(t, e, n) {
		var i = n(21);
		"string" == typeof i && (i = [
			[t.id, i, ""]
		]);
		n(23)(i, {});
		i.locals && (t.exports = i.locals)
	},
	function(t, e, n) {
		e = t.exports = n(22)(), e.push([t.id, " #gwd_ht_main a{\n      display: inline-block;\n    }\n    .gwd_haitao {\n      font-size: 12px;\n      font-family: 'Microsoft Yahei'\n    }\n    #gwd_ht_main{\n      width: 355px;\n      height: 198px;\n      font-size: 13px;\n      display: inline-block;\n    }\n    #gwd_ht_load img {\n      position: relative;\n      top: 91px;\n      left: 74px;\n    }\n    .ht_6pm{\n      position: relative;\n      margin: 0 auto;\n    }\n    #gwd_ht_main .ht_head{\n      height: 34px;\n      background-repeat: no-repeat;\n      position: relative;\n      background: url(\"https://s1.gwdang.com/images/extensions/ht_title_bg.png\");\n      background-position: -1px -1px;\n    }\n    #gwd_ht_main .gwd_site_icon{\n      display: inline-block;\n      position: absolute;\n      top: 0px;\n      left: 0px;\n      height: 34px;\n      width: 34px;\n      float: left;\n      cursor: pointer;\n    }\n    #gwd_ht_main .unit_price #ht_addcollect{\n      border: 1px solid #91c5e5;\n      cursor: pointer;\n      height: 24px;\n      line-height: 24px;\n      text-align: center;\n      width: 77px;\n      border-radius: 3px;\n      background-color: #fff;\n      margin-bottom: 6px;\n      margin-top: 4px;\n      color: #2787ca;\n    }\n    #gwd_ht_main .unit_price #ht_addcollect.trend_wait.c_adding{\n      background-color: #69acdb;\n      color: #fff;\n    }\n    #gwd_ht_main .unit_price #ht_addcollect.trend_wait.c_added{\n      background-color: #278ac9;\n      color: #fff;\n    }\n    #gwd_ht_main .unit_price #ht_addcollect:hover {\n      text-decoration: none;\n      color:#2787ca;\n      background-color: #bedcef;\n    }\n    .gwd_haitao .price_num{\n      color: #E60117;\n      display: inline-block;\n      width: 89px;\n      font-weight: bold;\n    }\n    .gwd_haitao .ht_getprice{\n      width: 354px;\n      height: 35px;\n      line-height: 35px;\n      color: #fff;\n      font-size: 16px;\n      text-align: center;\n      float: left;\n    }\n    .ht_getprice_num {\n      font-weight: bold;\n    }\n    .unit_price{\n      text-align: left;\n    }\n    .on_Or_Off {\n      position: absolute;\n      top: 52px;\n      right: 0px;\n      height: 20px;\n      line-height: 20px;\n      width: 20px;\n      color: red;\n    }\n    .translate_detail {\n      top: 83px;\n      left: 342px;\n    }\n    .gwd_haitao .content_default_right .div_detail {\n      display: none;\n      position: absolute;\n      width: 156px;\n      border: 2px solid #e1e1e1;\n      background-color: #fff;\n      z-index: 99;\n      line-height: 19px;\n      font-size: 12px;\n      color: #888;\n      padding: 6px 4px 6px 10px;\n    }\n    .pro_type_detail {\n      top: 15px;\n      left: 342px;\n    }\n    .mail_type_detail {\n      top: 48px;\n      left: 342px;\n    }\n    #ht_trans_input{\n      position: relative;\n      top: 8px;\n      cursor: pointer;\n    }\n    .trans_label{\n      height: 30px;\n      line-height: 30px;\n      font-weight: normal;\n    }\n    .ht_translate:hover {\n      cursor: text;\n    }\n    .ht_translate,.pro_type,.mail_type{\n      text-align: left;\n    }\n    .pro_type:hover,.mail_type:hover {\n      cursor: text;\n    }\n    .gwd_haitao .ht_getprice:hover{\n      text-decoration: none;\n      color: #fff;\n    }\n    .gwd_haitao .ht_weight_num{\n      height: 18px;\n      width: 42px;\n      float: left;\n      border-radius: initial;\n      border-right: none;\n      position: relative;\n      margin-top: 6px;\n      padding: 0 3px;\n      display: inline-block;\n      border: 1px solid #999;\n      box-sizing: initial;\n    }\n    .gwd_haitao .weight_type{\n      display: inline-block;\n      height: 20px;\n      width: 24px;\n      background-color: #278ac9;\n      color: #fff;\n      text-align: center;\n      line-height: 20px;\n      position: relative;\n      margin-top: 6px;\n      cursor: pointer;\n    }\n    .gwd_haitao .content_default_left{\n      height: 137px;\n      width: 239px;\n      border-right: 1px solid #e5e5e5;\n      float: left;\n      display: inline-block;\n      margin-top: 10px;\n    }\n    .gwd_haitao .ht_weight span {\n      float: left;\n    }\n    .gwd_haitao .content_default_left div{\n      height: 34px;\n      line-height: 34px;\n      color: #373737;\n      margin-left: 12px;\n      overflow: hidden;\n    }\n    .gwd_haitao .ht_transport_btn,.gwd_haitao .ht_tariff_btn{\n      float: right;\n      margin-right: 15px;\n      cursor: pointer;\n      color: #278ac9;\n    }\n    .gwd_haitao .ht_transport_btn:hover,.ht_tariff_btn:hover{\n      text-decoration: none;\n      color: #278ac9;\n    }\n    .gwd_haitao .ht_freight_num{\n      display: inline-block;\n      width: 42px;\n    }\n    .gwd_haitao .ht_freight,.gwd_haitao .del_line{\n      float: left;\n      display: inline-block;\n      text-align: left;\n    }\n    .gwd_haitao .point_icon{\n      background: url('https://s1.gwdang.com/images/extensions/ht_point_icon.png');\n      display: inline-block;\n      height: 9px;\n      width: 10px;\n      position: relative;\n      top: -1px;\n    }\n    .gwd_haitao .del_line{\n      text-decoration: line-through;\n      cursor: pointer;\n      display: inline-block;\n      width: 90px;\n    }\n    .gwd_haitao .content_default_right{\n      display: inline-block;\n      height: 137px;\n      margin-top: 10px;\n      width: 105px;\n    }\n    .gwd_haitao .content_default_right a{\n      width: 90px;\n      height: 34px;\n      line-height: 34px;\n      margin-left: 13px;\n      color: #383835;\n    }\n    .gwd_haitao .content_default_right a:hover{\n      text-decoration: none;\n      color: #383835;\n    }\n    #gwd_ht_main .size_help{\n      cursor: pointer;\n\n    }\n    #gwd_ht_main .size_help span {\n      text-decoration: underline;\n      color: #278ac9;\n    }\n    #gwd_ht_main .size_help span:hover {\n      background-color: #cdeaf6;\n    }\n    .gwd_haitao .content_default_right em{\n      display: inline-block;\n      width: 18px;\n      height: 18px;\n      position: relative;\n      top: 4px;\n      background: url('https://s1.gwdang.com/images/extensions/ht_help_bg.png') no-repeat;\n    }\n    .gwd_haitao .size_help em{\n      background-position:  0px 0px;\n    }\n    .gwd_haitao .ht_translate em{\n      background-position:  -70px 0px;\n    }\n    .gwd_haitao .pro_type .ziying{\n      background-position:  -24px 0px;\n    }\n    .gwd_haitao .pro_type .sanfang{\n      background-position:  -49px 0px;\n    }\n    .gwd_haitao .mail_type .zhiyou{\n      background-position:  -113px 0px;\n    }\n    .gwd_haitao .mail_type .feizhiyou{\n      background-position:  -91px 0px;\n    }\n    .gwd_haitao .gwd_wishlist_trend_detail_wrapper{\n      float: left;\n    }\n    .gwd_haitao .ht_content{\n      height: 162px;\n      position: relative;\n      border: 1px solid #e5e5e5;\n    }\n   \n    /* 关税分类选择 */\n    #tariff_detail{\n      position: absolute;\n      display:none;\n      background-color: #fff;\n      z-index: 99999999;\n      top: 0px;\n      left: 0px;\n      width: 273px;\n      height: 170px;\n      box-shadow: 0 0 5px;\n    }\n    #tariff_detail .xialabox a{\n      display:block;\n      color: #000;\n      margin-left: 7px;\n      width: 98px;\n      height: 19px;\n      line-height: 19px;\n      overflow: hidden;\n    }\n    #tariff_detail .xialabox a:hover{\n      color: #ec3701;\n      background: #f1f5f3;\n    }\n    #tariff_detail .tar_head{\n      height: 35px;\n    }\n    #tariff_detail .tar_head span{\n      display: inline-block;\n      height: 34px;\n      line-height: 35px;\n      font-size: 16px;\n      text-align: center;\n      width: 238px;\n    }\n    .gwd_haitao .tar_desc{\n      line-height: 35px;\n    }\n    .gwd_haitao .tar_desc .del_line{\n      margin: 0 23px;\n    }\n    #cate_select_box{\n      text-align: left;\n    }\n    .gwd_haitao #cate_select_box input{\n      height: 23px;\n      width: 113px;\n      background: url('https://s1.gwdang.com/images/extensions/ht_point_icon.png') no-repeat 94px 7px;\n      cursor: pointer;\n      border: 1px solid #e1e1e1;\n      box-shadow: none;\n      box-sizing: border-box;\n      padding: 3px 7px;\n      border-radius: initial;\n    }\n    .gwd_haitao #cate_select_box input.sel_info{\n      background-color: #e1e1e1;\n    }\n    .gwd_haitao #cate_select_box input.input_hover{\n      border-bottom: 1px solid #fff;\n      color: #999;\n    }\n    .gwd_haitao .cate_select_1{\n      display: inline-block;\n      float: left;\n      margin-left: 17px;\n    }\n    .gwd_haitao .cate_select_2{\n      margin-left: 11px;\n      display: inline-block;\n    }\n    .gwd_haitao .xialabox{\n      display: none;\n      background-color: #fff;\n      border: 1px solid #e1e1e1;\n      overflow-y: scroll;\n      overflow-x: hidden;\n      height: 185px;\n      text-align: left;\n      border-top: none;\n      position: absolute;\n      width: 113px;\n    }\n    .ie_hack.gwd_haitao .xialabox {\n      width: 111px;\n    }\n    .gwd_haitao #select_btn{\n      display: inline-block;\n      width: 82px;\n      height: 23px;\n      background-color: #278ac9;\n      border-radius: 3px;\n      margin-left: 102px;\n      margin-top: 20px;\n      color: #fff;\n      text-align: center;\n      line-height: 23px;\n      cursor: pointer;\n    }\n    #transport_detail{\n      position: absolute;\n      width: 652px;\n      height: 354px;\n      border: 2px solid #278ac9;\n      background-color: #fff;\n      top: 400px;\n      left: 400px;\n      display: none;\n      z-index: 99999;\n    }\n    #transport_detail *{\n      box-sizing: border-box;\n    }\n    #transport_detail .trans_nav .span_1{\n      text-align: center;\n      width: 158px;\n      padding-left: 18px;\n    }\n    #transport_detail .trans_nav .span_2{\n      text-align: right;\n      width: 150px;\n      padding-right: 16px;\n    }\n    .ht_trans_detail .trans_head{\n      height: 60px;\n    }\n    .gwd_haitao .closebar{\n      display: inline-block;\n      text-align: center;\n      font-size: 30px;\n      position: absolute;\n      top: 4px;\n      right: 7px;\n      color: #666;\n      cursor: pointer;\n    }\n    .ht_trans_detail .trans_nav{\n      display:inline-block;\n      float: left;\n      margin-top: 10px;\n      border-bottom: 2px solid #8fc1e1;\n      margin-left: 26px;\n    }\n    .ht_trans_detail .trans_nav>span{\n      display:inline-block;\n      width: 87px;\n      color: #000;\n      font-size: 15px;\n      height: 48px;\n      line-height: 48px;\n      text-align: right;\n    }\n    .ht_trans_detail .trans_nav .trans_w{\n      text-align: left;\n    }\n    .ht_trans_detail .trans_w .weight_type{\n      height: 23px;\n      width: 26px;\n      line-height: 25px;\n    }\n    .ht_trans_detail .trans_w .ht_weight_num{\n      height: 23px;\n      position: relative;\n      top: 6px;\n      width: 60px;\n      border-radius: initial;\n    }\n    .gwd_haitao .trans_content {\n      height: 232px;\n      width: 585px;\n      margin-left: 26px;\n      overflow-y: scroll;\n    }\n    .ht_trans_detail .trans_foot,.size_desc {\n      text-align: right;\n      color: #9f9f9f;\n      line-height: 35px;\n    }\n    .gwd_haitao .red{\n      color: #e72030;\n    }\n    .ht_trans_detail .trans_foot .red+span{\n      margin-right: 50px;\n    }\n    .ht_trans_detail #trans_list{\n      margin: 0px;\n      padding: 0px;\n    }\n    .ht_trans_detail #trans_list li{\n      list-style: none;\n      line-height: 32px;\n      height: 32px;\n      color: #333;\n      cursor: pointer;\n      text-align: left;\n      background-color: #f7f7f7;\n    }\n    .gwd_haitao #trans_list li:hover, .ht_trans_detail #trans_list li.l_odd:hover{\n      background-color: #E1E1EB;\n    }\n    .ht_trans_detail #trans_list li.l_odd{\n      background-color: #fff;\n    }\n    .ht_trans_detail #trans_list li span{\n      display:inline-block;\n    \n    }\n    .ht_trans_detail .lo_center{\n      margin-left: 34px;\n      width: 158px;\n    }\n    .ht_trans_detail span.trans_cate {\n      width: 130px;\n      margin-left: 16px;\n    }\n    .ht_trans_detail span.trans_pr {\n      margin-left: 40px;\n    }\n    .ht_trans_detail span.trans_com {\n      width: 62px;\n      margin-left: 26px;\n    }\n\n    /* 尺码帮助 */\n    #size_detail{\n      width: 595px;\n      height: 420px;\n      position: absolute;\n      top: 400px;\n      left: 400px;\n      display: none;\n      text-align: left;\n      z-index: 9999999;\n      box-sizing: border-box;\n      background-color: #fff;\n      border: 2px solid #278ac9;          \n    }\n    .ht_size_detail .detail_left{\n      width: 93px;\n      display: inline-block;\n      float: left;\n      background-color: #fff;\n      height: 416px;\n    }\n    .detail_left span{\n      display: inline-block;\n      margin-left: 21px;\n    }\n    .ht_size_detail .shangyi{\n      margin-top: 85px;\n    }\n    .ht_size_detail .xiazhuang{\n      margin-top: 31px;\n    }\n    .ht_size_detail .shoes,.ht_size_detail .tongzhuang{\n      margin-top: 85px;\n      display: none;\n      background-color: #278ac9;\n      color: #fff;\n    }\n    .ht_size_detail .shangyi.size_hover,.ht_size_detail .xiazhuang.size_hover{\n      background-color: #278ac9;\n      color: #fff;\n    }\n    .ht_size_detail .shangyi,.ht_size_detail .xiazhuang,.ht_size_detail .shoes,.ht_size_detail .tongzhuang{\n      height: 31px;\n      width: 52px;\n      text-align: center;\n      line-height: 31px;\n      cursor: pointer;\n      border:  1px solid #91c5e5;\n    }\n    .ht_size_detail .cloth_icon{\n      margin-top: 66px;\n    }\n    .ht_size_detail .ht_shangyi{\n      margin-left: 13px;\n      height: 59px;\n      width: 66px;\n      background: url('https://s1.gwdang.com/images/extensions/ht_shangyi.png');\n    }\n    .ht_size_detail .ht_xiazhuang{\n      margin-left: 25px;\n      height: 63px;\n      width: 41px;\n      background: url('https://s1.gwdang.com/images/extensions/ht_xiazhuang.png');\n    }\n    .ht_size_detail .ht_shoes{\n      margin-left: 24px;\n      height: 59px;\n      width: 47px;\n      background: url('https://s1.gwdang.com/images/extensions/ht_shoes.png');\n    }\n    .ht_size_detail .detail_right{\n      display: inline-block;\n      width: 480px;\n      height: 100%;\n    }\n    .ht_size_detail .clothes_nav{\n      margin-top: 13px;\n      line-height: 30px;\n      height: 30px;\n      width: 480px;\n    }\n    .ht_size_detail .clothes_nav ul{\n      padding: 0;\n      margin: 0px;\n    }\n    .ht_size_detail .size_s{\n      height: 46px;\n      \n    }\n    \n    .ht_size_detail #size_item{\n      height: 180px;\n      overflow-y: scroll;\n    }\n    .ht_size_detail .clothes_nav ul li{\n      list-style: none;\n      float: left;\n      font-size: 16px;\n      width: 32px;\n      margin-right: 48px;\n      color: #000;\n      cursor: pointer;\n      border-bottom: 2px solid #fff;\n    }\n    .ht_size_detail .clothes_nav ul li.select{\n      border-bottom: 2px solid #278ac9;\n      color: #278ac9;\n    }\n    .ht_size_detail .size_head{\n      height: 60px;\n    }\n    .ht_size_detail .unit_desc{\n      line-height: 30px;\n      text-align: right;\n    }\n    .ht_size_detail .size_con{\n      text-align: right;\n      margin-top: 16px;\n      margin-bottom: 5px;\n    }\n    .ht_size_detail .size_op{\n      width: 440px;\n      display: inline-block;\n      float: right;\n      position: relative;\n    }\n\n    .ht_size_detail .size_op input+input {\n     margin-left: 0px; \n    }\n    #first_size+.first_xiala {\n     position: absolute;\n     right: 260px;\n    }\n    .ht_size_detail .size_op input{\n      width: 100px;\n      height: 31px;\n      box-sizing: border-box;\n    }\n    .ht_size_detail .size_xialabox {\n      display: none;\n      width: 71px;\n      height: 190px;\n      border: 1px solid #999;\n      border-bottom: none;\n      position: absolute;\n      text-align: left;\n      line-height: 19px;\n      top: -189px;\n      right: 260px;\n      box-sizing: border-box;\n      background-color: #fff;\n    }\n    #second_size+.second_xiala{\n      position: absolute;\n      right: 8px;\n    }\n    .ht_size_detail #second_size+input+.size_xialabox{\n      right: 8px;\n    }\n    .ht_size_detail .size_xialabox a{\n      display: block;\n      padding-left: 7px;\n      color: #333;\n    }\n    .ht_size_detail .size_xialabox a:hover{\n      text-decoration: none;\n      color: #ec3701;\n      background: #f1f5f3;\n    }\n    .ht_size_detail .size_op .size_xiala{\n      width: 71px;\n      border: 1px solid #999;\n      padding-left: 7px;\n    }\n    .ht_size_detail .size_xiala{\n      background: url('https://s1.gwdang.com/images/extensions/ht_point_icon.png') no-repeat 50px 10px;\n      cursor: pointer;\n    }\n    .ht_size_detail .conversion{\n      margin: 0 15px 0 90px;\n    }\n    /* fanyi */\n    .ht_fanyi{\n      display: block;\n      position: absolute;\n      background-color: #278ac9;\n      padding: 5px;\n      border-radius: 4px;\n    }\n    .ht_fanyi a{\n      display: block;\n      width: 130px;\n      text-decoration: none;\n      color: #fff;\n    }\n    .ht_fanyi a:hover{\n      text-decoration: none;\n      color: #fff;\n    }\n    #ht_top{\n      position: absolute;\n      width: 0px;\n      height: 0px;\n      line-height: 0px;/*为了防止ie下出现题型*/\n      border-bottom: 7px solid #278ac9;\n      border-left: 7px solid #fff;\n      border-right: 7px solid #fff;\n      left: 58px;\n      top: -7px;\n    }\n    /* 滚动条样式 */\n    .gwd_haitao ::-webkit-scrollbar {\n        width: 6px;\n        height: 10px;\n    }\n    .gwd_haitao ::-webkit-scrollbar-button {\n        background-size: 100%;\n        height: 10px;\n        width: 6px;\n        -webkit-box-shadow: inset 1px 1px 2px rgba(0,0,0,0.2);\n    }\n    \n    .gwd_haitao ::-webkit-scrollbar-button:end {\n        display: block;\n    }\n    \n    .gwd_haitao ::-webkit-scrollbar-button:start {\n        display: none;\n    }\n    \n    .gwd_haitao ::-webkit-scrollbar-button:horizontal:increment {\n        background-image: url(https://dl.dropboxusercontent.com/u/55165267/icon2.png);\n    }\n    \n    .gwd_haitao ::-webkit-scrollbar-button:horizontal:decrement {\n        background-image: url(https://dl.dropboxusercontent.com/u/55165267/icon4.png);\n    }\n    \n    .gwd_haitao ::-webkit-scrollbar-button:vertical:increment {\n        background-image: url(https://dl.dropboxusercontent.com/u/55165267/icon3.png);\n    }\n    \n    .gwd_haitao ::-webkit-scrollbar-button:vertical:decrement {\n        background-image: url(https://dl.dropboxusercontent.com/u/55165267/icon.png);\n    }\n    \n    .gwd_haitao ::-webkit-scrollbar-track {\n        background: #f8f8f8;\n        -webkit-box-shadow: inset 1px 1px 2px rgba(0,0,0,0.1);\n    }\n    .gwd_haitao ::-webkit-scrollbar-thumb {\n        background: #aaa;\n        -webkit-box-shadow: inset 1px 1px 2px rgba(0,0,0,0.2);\n      border-radius: 5px;\n    }\n    .gwd_haitao ::-webkit-scrollbar-thumb:hover {\n        background: #989898;\n    }\n    .gwd_haitao ::-webkit-scrollbar-thumb:active {\n        background: #808080;\n        -webkit-box-shadow: inset 1px 1px 2px rgba(0,0,0,0.3);\n    }\n    /* 亚马逊遮挡 */\n    #actionPanelWrapper.burj {\n      overflow: visible;\n    }", ""]);

	},
	function(t, e) {
		t.exports = function() {
			var t = [];
			return t.toString = function() {
				for (var t = [], e = 0; e < this.length; e++) {
					var n = this[e];
					t.push(n[2] ? "@media " + n[2] + "{" + n[1] + "}" : n[1])
				}
				return t.join("")
			}, t.i = function(e, n) {
				"string" == typeof e && (e = [
					[null, e, ""]
				]);
				for (var i = {}, a = 0; a < this.length; a++) {
					var o = this[a][0];
					"number" == typeof o && (i[o] = !0)
				}
				for (a = 0; a < e.length; a++) {
					var r = e[a];
					"number" == typeof r[0] && i[r[0]] || (n && !r[2] ? r[2] = n : n && (r[2] = "(" + r[2] + ") and (" + n + ")"), t.push(r))
				}
			}, t
		}
	},
	function(t, e, n) {
		function i(t, e) {
			for (var n = 0; n < t.length; n++) {
				var i = t[n],
					a = p[i.id];
				if (a) {
					a.refs++;
					for (var o = 0; o < a.parts.length; o++) a.parts[o](i.parts[o]);
					for (; o < i.parts.length; o++) a.parts.push(s(i.parts[o], e))
				} else {
					for (var r = [], o = 0; o < i.parts.length; o++) r.push(s(i.parts[o], e));
					p[i.id] = {
						id: i.id,
						refs: 1,
						parts: r
					}
				}
			}
		}

		function a(t) {
			for (var e = [], n = {}, i = 0; i < t.length; i++) {
				var a = t[i],
					o = a[0],
					r = a[1],
					s = a[2],
					l = a[3],
					d = {
						css: r,
						media: s,
						sourceMap: l
					};
				n[o] ? n[o].parts.push(d) : e.push(n[o] = {
					id: o,
					parts: [d]
				})
			}
			return e
		}

		function o() {
			var t = document.createElement("style"),
				e = g();
			return t.type = "text/css", e.appendChild(t), t
		}

		function r() {
			var t = document.createElement("link"),
				e = g();
			return t.rel = "stylesheet", e.appendChild(t), t
		}

		function s(t, e) {
			var n, i, a;
			if (e.singleton) {
				var s = f++;
				n = m || (m = o()), i = l.bind(null, n, s, !1), a = l.bind(null, n, s, !0)
			} else t.sourceMap && "function" == typeof URL && "function" == typeof URL.createObjectURL && "function" == typeof URL.revokeObjectURL && "function" == typeof Blob && "function" == typeof btoa ? (n = r(), i = c.bind(null, n), a = function() {
				n.parentNode.removeChild(n), n.href && URL.revokeObjectURL(n.href)
			}) : (n = o(), i = d.bind(null, n), a = function() {
				n.parentNode.removeChild(n)
			});
			return i(t),
				function(e) {
					if (e) {
						if (e.css === t.css && e.media === t.media && e.sourceMap === t.sourceMap) return;
						i(t = e)
					} else a()
				}
		}

		function l(t, e, n, i) {
			var a = n ? "" : i.css;
			if (t.styleSheet) t.styleSheet.cssText = w(e, a);
			else {
				var o = document.createTextNode(a),
					r = t.childNodes;
				r[e] && t.removeChild(r[e]), r.length ? t.insertBefore(o, r[e]) : t.appendChild(o)
			}
		}

		function d(t, e) {
			{
				var n = e.css,
					i = e.media;
				e.sourceMap
			}
			if (i && t.setAttribute("media", i), t.styleSheet) t.styleSheet.cssText = n;
			else {
				for (; t.firstChild;) t.removeChild(t.firstChild);
				t.appendChild(document.createTextNode(n))
			}
		}

		function c(t, e) {
			var n = e.css,
				i = (e.media, e.sourceMap);
			i && (n += "\n/*# sourceMappingURL=data:application/json;base64," + btoa(unescape(encodeURIComponent(JSON.stringify(i)))) + " */");
			var a = new Blob([n], {
					type: "text/css"
				}),
				o = t.href;
			t.href = URL.createObjectURL(a), o && URL.revokeObjectURL(o)
		}
		var p = {},
			h = function(t) {
				var e;
				return function() {
					return "undefined" == typeof e && (e = t.apply(this, arguments)), e
				}
			},
			u = h(function() {
				return /msie [6-9]\b/.test(window.navigator.userAgent.toLowerCase())
			}),
			g = h(function() {
				return document.head || document.getElementsByTagName("head")[0]
			}),
			m = null,
			f = 0;
		t.exports = function(t, e) {
			e = e || {}, "undefined" == typeof e.singleton && (e.singleton = u());
			var n = a(t);
			return i(n, e),
				function(t) {
					for (var o = [], r = 0; r < n.length; r++) {
						var s = n[r],
							l = p[s.id];
						l.refs--, o.push(l)
					}
					if (t) {
						var d = a(t);
						i(d, e)
					}
					for (var r = 0; r < o.length; r++) {
						var l = o[r];
						if (0 === l.refs) {
							for (var c = 0; c < l.parts.length; c++) l.parts[c]();
							delete p[l.id]
						}
					}
				}
		};
		var w = function() {
			var t = [];
			return function(e, n) {
				return t[e] = n, t.filter(Boolean).join("\n")
			}
		}()
	},
	function(t, e) {
		t.exports = '<div id="gwd_ht_main" class="gwd_haitao {{data.pageclass}}" >\n    <div  class="ht_head">\n      <a href="https://www.gwdang.com" class="gwd_site_icon" target="_blank" title="购物党"></a>\n      <a class="ht_getprice item_hover">到手价：<span class="ht_getprice_num ">¥{{data.getprice}}</span></a>\n    </div>\n    <div class="ht_content">\n      <div class="content_default" >\n        <div class="content_default_left">\n          <div class="unit_price">\n            <span>单价：</span>\n            <span class="price_num">¥{{data.unit_price}}</span>\n            <a id="ht_addcollect" class="trend_wait" title="点击加入收藏夹，商品降价有提醒。"><span>降价提醒</span></a>\n          </div>\n          <div class="ht_weight">\n            <span>重量：</span>\n            <input type="text" value="{{data.he_weight}}" class="ht_weight_num">\n            <span class="weight_type">LB</span>\n          </div>\n          <div class="ht_transport">\n            <span class="ht_freight">转运费：<span class="ht_freight_num">¥0</span></span>\n            <a class="ht_transport_btn">\n              <span title="点击选择转运公司">转运商家</span>\n              <em class="point_icon"></em>\n            </a>\n          </div>\n          <div class="ht_tariff">\n            <span class="del_line" data-del="1">关税：<span class="ht_tariff_num" data-price="0">未知</span></span>\n            <a class="ht_tariff_btn">\n              <span>选择分类</span>\n              <em class="point_icon"></em>\n            </a>\n          </div>\n        </div>\n        <div class="content_default_right">\n          <a class="pro_type">\n            <em class="{{data.protype}}"></em>\n            <span class="pro_t_tle" >{{data.protype=="ziying"?"自营":"第三方"}}</span>\n            <div class="pro_type_detail div_detail">\n              {{data.protype==\'ziying\'?(data.site + \'直接销售。\'):(data.site + \'第三方商家销售。\')}}\n            </div>\n          </a>\n          <a class="mail_type" >\n            <em class="{{data.mailtype}}"></em>\n            <span >{{data.mailtype=="zhiyou"?"直邮":"非直邮"}}</span>\n            <div class="mail_type_detail div_detail">\n              {{if data.mailtype==\'zhiyou\'}}\n                该商品直邮支持直邮中国，到手时间约8~16天。\n              {{else if data.hosts == \'www.amazon.com\'}}\n                该商品不支持直邮中国，需转运公司转运，到手时间大约20~35天。\n              {{else if data.hosts == \'www.amazon.co.jp\'}}\n                该商品不支持直邮中国，需转运公司转运，到手时间大约7~30天。\n              {{else if data.hosts == \'www.amazon.de\'}}\n                该商品不支持直邮中国，需转运公司转运，到手时间大约25~40天。\n              {{else}}\n                该商品不支持直邮中国，需转运公司转运，到手时间大约20~35天。\n              {{/if}}\n            </div>\n          </a>\n          <a class="ht_translate">\n            <em></em>\n            <span>翻译帮助</span>\n            <div class="translate_detail div_detail">\n              已为您开启划词翻译，鼠标选中相关文字，即可翻译。\n            </div>\n          </a>\n          <a class="size_help">\n            <em></em>\n            <span>尺码对照表</span>\n          </a>\n        </div>\n      </div>\n      <div style="clear:both"></div>\n      <div id="tariff_detail">\n        <span class="closebar" title="关闭">×</span>\n        <div class="tar_head">\n          <a href="https://www.gwdang.com" class="gwd_site_icon" target="_blank" title="购物党"></a>\n          <span>选择商品分类</span>\n        </div>\n        <div class="tar_desc">\n          <span class="del_line">关税：<span class="ht_tariff_num">未知</span></span>\n          <span class="desc_t">单件商品关税</span>\n        </div>\n        <div id="cate_select_box">\n          <div class="cate_select_1">\n            <input type="text" value="请选择分类" id="cate_big" class="icon_down" readonly>\n            <div class="xialabox" id="big_xiala">\n              <a cate="cate1"  href="javascript:void(0);">食品</a>\n              <a cate="cate2"  href="javascript:void(0);">服饰</a>\n              <a cate="cate3"  href="javascript:void(0);">鞋、箱包</a>\n              <a cate="cate4"  href="javascript:void(0);">手表</a>\n              <a cate="cate5"  href="javascript:void(0);">厨房、餐厅</a>\n              <a cate="cate6"  href="javascript:void(0);">家电</a>\n              <a cate="cate7"  href="javascript:void(0);">个人护理</a>\n              <a cate="cate8"  href="javascript:void(0);">美容</a>\n              <a cate="cate9"  href="javascript:void(0);">手机及配件</a>\n              <a cate="cate10" href="javascript:void(0);">办公用品</a>\n              <a cate="cate11" href="javascript:void(0);">照相机、摄像机</a>\n              <a cate="cate12" href="javascript:void(0);">电子数码</a>\n              <a cate="cate13" href="javascript:void(0);">游戏机/游戏碟</a>\n              <a cate="cate14" href="javascript:void(0);">音箱</a>\n              <a cate="cate15" href="javascript:void(0);">个人电脑</a>\n              <a cate="cate16" href="javascript:void(0);">电子书设备</a>\n              <a cate="cate17" href="javascript:void(0);">玩具</a>\n              <a cate="cate18" href="javascript:void(0);">婴儿用品</a>\n            </div>\n          </div>\n          <div class="cate_select_2">\n            <input type="text" value="请选择分类" id="cate_small" maxlength="5" class="icon_down sel_info" readonly>\n            <div class="xialabox" id="small_xiala"></div>\n          </div>\n          <div id="select_btn" data-tariff="-1">确认</div>\n        </div>\n      </div>\n      \n    </div>\n</div>\n'
	},
	function(t, e) {
		t.exports = '<div id="size_detail" class="ht_size_detail gwd_haitao" style="top: {{pos.posy}}px;left: {{pos.posx}}px;">\r\n        <span class="closebar" title="关闭">×</span>\r\n        <div class="detail_left">\r\n            <span class="shangyi size_hover">上衣</span>\r\n            <span class="xiazhuang">下装</span>\r\n            <span class="tongzhuang">童装</span>\r\n            <span class="shoes">鞋子</span>\r\n            <span class="cloth_icon ht_shangyi"></span>\r\n        </div>\r\n       <div class="detail_right">\r\n          <div class="size_head">\r\n            <div class="clothes_nav">\r\n              <ul>\r\n                <li class="select">男装</li>\r\n                <li>女装</li>\r\n                <li>童装</li>\r\n                <li>男鞋</li>\r\n                <li>女鞋</li>\r\n                <li>童鞋</li>\r\n              </ul>\r\n            </div>\r\n            <div class="unit_desc">单位：厘米(CM)</div>\r\n          </div>\r\n          <div class="size_content">\r\n            <div class="content_center">\r\n              <div class="size_s">\r\n              </div>\r\n              <div id="size_item">\r\n                <a class="size_item_img"></a>\r\n              </div>\r\n              \r\n            </div>\r\n            <div class="size_desc">\r\n              <span class="red">*</span>\r\n              <span >此尺码为一般尺码，不同品牌可能会存在相应不同</span>\r\n            </div>\r\n          </div>\r\n          <div class="size_foot">\r\n            <div class="size_con">在线尺寸转换工具</div>\r\n            <div class="size_op">\r\n              <input id="first_size" type="text">\r\n              <input class="size_xiala first_xiala" value="厘米" readonly>\r\n              <div class="size_xialabox" data-size="first_xiala">\r\n                <a href="javascript:void(0);"></a>\r\n                <a href="javascript:void(0);">米</a>\r\n                <a href="javascript:void(0);">厘米</a>\r\n                <a href="javascript:void(0);">毫米</a>\r\n                <a href="javascript:void(0);">英尺</a>\r\n                <a href="javascript:void(0);">英寸</a>\r\n                <a href="javascript:void(0);">码</a>\r\n                <a href="javascript:void(0);">尺</a>\r\n                <a href="javascript:void(0);">寸</a>\r\n                <a href="javascript:void(0);">分</a>\r\n                <a href="javascript:void(0);">厘</a>\r\n              </div>\r\n              <span class="conversion">转换为</span>\r\n              <input id="second_size">\r\n              <input class="size_xiala second_xiala" value="英寸" readonly>\r\n              <div class="size_xialabox" data-size="second_xiala">\r\n                <a href="javascript:void(0);"></a>\r\n                <a href="javascript:void(0);">米</a>\r\n                <a href="javascript:void(0);">厘米</a>\r\n                <a href="javascript:void(0);">毫米</a>\r\n                <a href="javascript:void(0);">英尺</a>\r\n                <a href="javascript:void(0);">英寸</a>\r\n                <a href="javascript:void(0);">码</a>\r\n                <a href="javascript:void(0);">尺</a>\r\n                <a href="javascript:void(0);">寸</a>\r\n                <a href="javascript:void(0);">分</a>\r\n                <a href="javascript:void(0);">厘</a>\r\n              </div>\r\n            </div>\r\n            \r\n          </div>\r\n       </div>\r\n      </div>'
	},
	function(t, e) {
		t.exports = '<div id="transport_detail" class="ht_trans_detail gwd_haitao" style="top: {{pos.posy}}px;left: {{pos.posx}}px;">\r\n        <span class="closebar" title="关闭">×</span>\r\n        <div class="trans_head">\r\n          <div class="trans_nav">\r\n            <span>转运商家</span>\r\n            <span class="span_1">商家仓库</span>\r\n            <span class="span_2">适合品类</span>\r\n            <span >转运费</span>\r\n            <span class="trans_w">\r\n              <input type="text" value="{{ht_weight}}" class="ht_weight_num">\r\n              <span class="weight_type">LB</span>\r\n            </span>\r\n            \r\n          </div>\r\n          \r\n        </div>\r\n        <div class="trans_content">\r\n          <ul id="trans_list">\r\n            \r\n          </ul>\r\n        </div>\r\n        <div class="trans_foot">\r\n          <span class="red">*</span>\r\n          <span >具体转运优惠政策和费用以您选择的转运公司为准</span>\r\n        </div>\r\n</div>'
	},
	function(t, e, n) {
		(function(t) {
			"use strict";
			var e = [];
			t.plugins || (t.plugins = []), t.plugins = t.plugins.concat(e)
		}).call(e, n(1))
	},
	function(t, e, n) {
		(function(e) {
			"use strict";
			var i = n(29);
			i(e), t.exports = function() {
				var t = [];
				e.plugins && (t = t.concat(e.plugins));
				for (var n = t.length - 1; n >= 0; n--) {
					var i = t[n];
					if (i && i._init) try {
						i._init()
					} catch (a) {}
				}
			}
		}).call(e, n(1))
	},
	function(t, e) {
		"use strict";
		t.exports = function(t) {
			t.__events = {}, t.on = function(e, n) {
				t.__events[e] = t.__events[e] || [], t.__events[e].push(n)
			}, t.off = function(e, n) {
				var i = t.__events[e];
				if (i && i.length)
					for (var a = 0; a < i.length; a++)
						if (i[a] === n) {
							i.splice(a, 1);
							break
						}
			}, t.trigger = function(e) {
				var n = Array.prototype.slice.call(arguments);
				n.shift();
				var i = t.__events[e];
				if (i && i.length)
					for (var a = 0; a < i.length; a++) i[a].apply(this, n)
			}
		}
	},
	function(t, e, n) {
		var i;
		(function(a, o) {
			"use strict";
			i = function() {
				var t = n(14),
					e = n(31),
					i = n(32),
					r = n(33),
					s = n(34),
					l = n(18),
					d = n(35),
					c = n(37),
					p = n(38),
					h = n(40),
					u = n(16),
					g = n(17),
					m = n(41);
				return n(43), h.trigger({
					type: "get_etao_info"
				}), {
					init: function() {
						n(52)(), a("html").addClass("gwd_" + o.site), a("html").addClass("gwd_version_" + o.from_device), g("visit");
						var t = n(19);
						if (t && t.init(o.gwd_cnzz), 1 == o.pageInfo.type ? (this.site_search(), o.trigger("pageType=1")) : 2 == o.pageInfo.type && (this.site_dp(), o.trigger("pageType=2")), o.IE6) try {
							document.execCommand("BackgroundImageCache", !1, !0)
						} catch (e) {}
					},
					is_taobao: function() {
						return "taobao" == o.site || "tmall" == o.site
					},
					get_browser_info: function() {
						o.width = document.documentElement.clientWidth > 0 ? document.documentElement.clientWidth : document.body.clientWidth, o.height = "undefined" != typeof document.documentElement.clientHeight && document.documentElement.clientHeight > 0 ? document.documentElement.clientHeight : document.body.clientHeight, "amazon" == o.site && (o.height = document.body.clientHeight || document.documentElement.clientHeight)
					},
					site_search: function() {
						if ("360buy" == o.site && location.href.indexOf("gjdkuiufoslpldfgogii") > -1) return void c.setUnion();
						var t = this;
						if (!document.getElementById("gwdang-notifier") && !document.getElementById("plt-notifier")) {
							/search\.jd\.com/.test(location.href) && a(".ns-content").length && g("track:jd-search:no-result"), this.get_browser_info();
							var e = [];
							if ("taobao" == o.site && a(".similar-btns")) {
								for (var i = a('.similar-btns a[title^="同款"]'), r = i.length, s = /uniqpid=([^&]+)&?/i, d = 0; r > d; d++) {
									var p = i[d].href.match(s);
									p && p.length && e.push(p[1])
								}
								e = e.join(",")
							}
							u.get(o.server + "/brwext/permanent_id?version=2&default_style=" + o.default_style).done(function(i) {
								if (l.set(i), o.p_id = i.p_id, o.is_open = i.is_open, o.position = i.position, o.style = i.style && a.inArray(i.style, ["top", "right", "bottom"]) >= 0 ? i.style : o.default_style, o.fold = i.fold, o.first = i.first, o.show_mainbar = i.show_mainbar, o.email = i.email, o.show_tip = i.show_tip, o.show_wishlist = i.show_wishlist, o.show_promo = i.show_promo, o.show_guess = i.show_guess, o.subsite_id = i.subsite_id, o.force = i.force, o.ab = i.ab, n(53)(), 0 !== parseInt(o.show_mainbar) && 0 !== parseInt(o.show_tip)) {
									if ((o.hao123 || "maxthon" === o.from_device) && (o.style = "bottom"), "top" == o.style) {
										try {
											typeof document.getElementById("gwdang-notifier").innerHTML, a("#gwdang-notifier").html("")
										} catch (r) {
											a("body").append('<div id="gwdang-notifier"></div>'), a("#gwdang-notifier").show()
										}
										m(o.s_server + "/css/brwext/gwdang-notifier-new.css?v=" + o.version)
									} else if ("right" == o.style) {
										try {
											typeof document.getElementById("plt-notifier").innerHTML, a("#plt-notifier").html("")
										} catch (r) {
											a("body").append('<div id="plt-notifier"></div>'), a("#plt-notifier").show()
										}
										m(o.s_server + "/css/brwext/plt_notifier.css?v=" + o.version)
									} else if ("bottom" == o.style) {
										try {
											typeof document.getElementById("gwdang-notifier").innerHTML, a("#gwdang-notifier").html("")
										} catch (r) {
											a("body").append('<div id="gwdang-notifier"></div>'), a("#gwdang-notifier").show()
										}
										m(o.s_server + "/css/brwext/gwdang-notifier-bottom-new.css?v=" + o.version)
									}
									u.get(o.server + "/brwext/site_search?permanent_id=" + o.p_id + "&site=" + o.site + "&uniqpid=" + e).done(function(e) {
										t.show_search_bar(e, o.style)
									})
								}
							})
						}
					},
					site_dp: function() {
						var d = this;
						if (o.dp = t.get(), o.dp) {
							"dangdang" == o.site && a("head").append("<meta http-equiv='X-UA-Compatible' content='IE=edge' />"), o.dp.price || (o.dp.price = e.getOnlinePrice(o.site)), o.dp.inventory = i.init(o.site), o.dp.userid = r.getUserId(o.site);
							var c = "",
								p = "";
							try {
								o.dp.userid && (c = a(".shopkeeper .right a").text(), p = a(".locus .right").text().replace(/(?:\t|\n|\s)/gi, ""))
							} catch (h) {
								if (o.debug) throw h
							}
							this.get_browser_info(), u.get(o.server + "/brwext/permanent_id?version=2&show_share=1&p_fold=0&default_style=" + o.default_style).done(function(t) {
								if (l.set(t), o.p_id = t.p_id, o.is_open = t.is_open, o.position = t.position, o.style = t.style && a.inArray(t.style, ["top", "right", "bottom"]) >= 0 ? t.style : o.default_style, o.notice = t.notice, o.first = t.first, "" !== t.p_fold && (o.p_fold = t.p_fold), o.email = t.email, o.show_tip = t.show_tip, o.show_wishlist = t.show_wishlist, o.show_promo = t.show_promo, o.show_mainbar = t.show_mainbar, o.show_guess = t.show_guess, o.subsite_id = t.subsite_id, o.force = t.force, o.pop_share = t.share, o.search_way = t.search_way, n(53)(), o.province_id = e.getSubStationId(o.dp.site), 0 !== o.show_mainbar && "0" !== o.show_mainbar) {
									(o.hao123 || "maxthon" === o.from_device) && (o.style = "bottom");
									var i = "body";
									o.maxthon_tmall && (i = "html"), "top" == o.style ? (a(i).append('<div id="gwdang-notifier"></div>'), a("#gwdang-notifier").show(), m(o.s_server + "/css/brwext/gwdang-notifier-new.css?v=" + o.version)) : "right" == o.style ? (a(i).append('<div id="plt-notifier"></div>'), a("#plt-notifier").show(), m(o.s_server + "/css/brwext/plt_notifier.css?v=" + o.version)) : "bottom" == o.style && (a(i).append('<div id="gwdang-notifier"></div>'), a("#gwdang-notifier").show(), m(o.s_server + "/css/brwext/gwdang-notifier-bottom-new.css?v=" + o.version));
									var r = "dp_query";
									"bottom" == o.style && (r = "product");
									var h = o.debug || location.href.indexOf("code-sid") > -1 ? "&debug=1" : "";
									u.get(o.server + "/brwext/" + r + "?permanent_id=" + o.p_id + "&union=" + encodeURIComponent(o.union) + "&url=" + encodeURIComponent(o.dp.url) + "&site=" + o.dp.site + "&isbn=" + o.dp.isbn + "&name=" + encodeURIComponent(o.dp.name) + "&keyword=" + encodeURIComponent(o.dp.keyword) + "&skeyword=" + encodeURIComponent(o.dp.skeyword) + "&id=" + o.dp.id + "&price=" + o.dp.price + "&stock=" + o.dp.inventory + "&province_id=" + o.province_id + "&subsite_id=" + o.subsite_id + "&cat_id=" + ("undefined" != typeof o.dp.cat_id ? o.dp.cat_id : "") + "&pic=" + ("undefined" != typeof o.dp.pic ? encodeURIComponent(o.dp.pic) : "") + "&userid=" + o.dp.userid + "&shop_name=" + c + "&shop_addres=" + p + "&cat_name=" + encodeURIComponent(o.dp.cat_name) + "&brand_string=" + encodeURIComponent(o.dp.brand_string) + h).done(function(t) {
										if (o.trigger("main:get_dp_data", t), o.debug && window.console && console.log(t), o.save_dp_query = t, s.init(), o.dpIsBook = t && t.exact_arr && t.exact_arr.isbn, o.where_buy_dps = t && t.b2c && t.b2c.all_dp_ids || "", o.where_buy_dps) {
											for (var e = o.where_buy_dps.split("|"), n = "0-0", i = 0; i < e.length && !(i > 6); i++) n += ",", n += e[i];
											o.where_buy_dps = n
										}
										o.now_dp_id = d.is_taobao() ? t && t.exact_arr && t.exact_arr.taobao_same_id : t && t.now && t.now.now_dp_id, d.show_dp_bar(t, o.style)
									})
								}
							})
						}
					},
					show_search_bar: function(t, e) {
						"vipshop" == o.site && d.setUnion(), "right" == e ? n(54).display_search_bar_right(t) : "bottom" == e ? n(75).display_search_bar_bottom(t) : ("undefined" == typeof e || "top" == e) && n(94).display_search_bar_top(t)
					},
					show_dp_bar: function(t, e) {
						"chrome" == o.from_device && p.init(), "right" == e && n(54).display_dp_main_bar_right(t), "top" == e && n(94).init(t), "bottom" == e && n(75).init(t);
						try {
							c.init()
						} catch (i) {
							if (o.debug) throw i
						}
					}
				}
			}.call(e, n, e, t), !(void 0 !== i && (t.exports = i))
		}).call(e, n(12), n(1))
	},
	function(t, e, n) {
		var i;
		(function(a) {
			"use strict";
			i = function() {
				function t() {
					var t = i.get().price;
					return t && (t = Number(t)), t
				}
				var e = n(12),
					i = n(14),
					o = n(10),
					r = n(15);
				return {
					getOnlinePrice: function(n) {
						n = n || o.getPageInfo().siteName;
						var i = 0;
						try {
							if ("undefined" != typeof this.pricePattern[n])
								for (var s = this.pricePattern[n].length, l = this.pricePattern[n], d = 0; s > d; d++) try {
									var c = l[d];
									if (i = e(c + ":visible").length && e(c).eq(0).text(), !i) continue;
									if (i = r(i)) break
								} catch (p) {
									a.debug && console.log(p)
								}
						} catch (p) {
							a.debug && console.log(p)
						}
						return (0 == i || "" == i) && (i = t()), i
					},
					pricePattern: {
						coocaa: ["#ECS_SHOPPRICE span:eq(1)", "#ECS_SHOPPRICE"],
						nubia: [".pdtby-price"],
						coolpad: [".produce_scall_right_textb ul li span.produce_scall_right_textx"],
						lenovo: [".lenovo-member-price font", "#gprice"],
						gjw: ["#spPrice", ".goujiu_price"],
						homevv: [".ht_money"],
						xiaomi: [".goods-info-head .J_mi_goodsPrice", ".J_mi_goodsPrice", ".price .num"],
						xiu: ["#prd_price_div .style3"],
						moonbasa: ["#p_saleprice", ".detailprice"],
						j1: ["#jianyiPrice"],
						s: [".salePrice_big"],
						letao: ["#special+.ltprice"],
						muyingzhijia: [".p-price"],
						paixie: ["#js_current_price"],
						zhiwo: [".mumer", ".dsingle_nowprice"],
						bookschina: ["span.thisprice", ".thisprice"],
						leyou: ["#leyoujia"],
						taobao: [".tm-promo-price .tm-price", ".tb-wrTuan-num", "#J_StrPriceModBox .tm-price", "#J_PromoPrice .tb-rmb-num", "#J_PromoBox .J_CurPrice", "#J_StrPrice", ".tbid-detail-price"],
						"taobao-ju": [".currentPrice"],
						amazon: ["#priceblock_ourprice", ".priceLarge"],
						"gome-q": [".price"],
						dangdang: ["#promo_price", ".priceLarge", "#salePriceTag", "#d_price"],
						m18: [".detailsArea strong[data-price]"],
						sephora: [".proDetInfo .proPrice span"],
						taoxie: ["#divtxprice .d-real-price"],
						lusen: ["#ProductPrice"],
						mbaobao: [".price-num"],
						chunshuitang: [".tuan-buy-text", ".Gd_shop_Price dt"],
						oyeah: [".pricesty"],
						x: [".pro_big_right .list .jsj[style^=text]"],
						no5: [".prodRedTxt.price"],
						"360kxr": ["#pro_mall_price"],
						m6go: ["#SGoodsPrice"],
						likeface: [".tPrc1.tPrcOn>div>b", "#jrtj"],
						morefood: [".pro-info .text2"],
						yaofang: [".s_xianjia_140519"],
						"99read": ["#panel-right .pro-InfoList li span.f-Price"],
						"china-pub": ["#xxjg .pro_buy_sen"],
						winxuan: [".price-n dd b"],
						efeihu: [".ui_price strong em"],
						happigo: ["#real_price"],
						gap: ["#productShowPrice"],
						tiantian: [".xx_price"],
						xijie: [".detail_pro_d_1"],
						lingshi: ["#shopprice"],
						banggo: ["#salePriceText"],
						yesmywine: [".explain .myPrice"],
						jxdyf: ["#zc_jiage .jxPrice"],
						tootoo: ["#price"],
						zm7: ["#ECS_SHOPPRICE"],
						miqi: [".left_topTable_btn"],
						jiumei: ["#jiage .cuxiao .numb strong"],
						okhqb: [".cz-num"],
						bookuu: ["#bk-d-price"],
						tao3c: [".detail_info_rm1 cite"],
						d1: [".p_mp"],
						ruiyi: [".goods-price .price1"],
						lamiu: [".action-price"],
						wbiao: ["#g5_price"],
						ehaier: [".cur-price"],
						secoo: ["#secooPriceJs"],
						zhen: ["#sale-price"],
						xifuquan: [".jg_cuhong"],
						yiguo: [".pro-price>div strong"],
						yummy77: [".cprice .price"],
						fruitday: [".prod_price"],
						zuipin: [".detail_price"],
						yohobuy: [".price-sale"],
						ikjtao: ["#ECS_GOODS_AMOUNT"],
						miyabaobei: ["#item_price"],
						ule: [".productPrice .price strong"],
						minshengec: [".ms_price .dd strong"],
						wangfujing: ["#pro-price .cost"],
						meilele: ["#JS_effect_price"],
						supuy: ["#ShowPrice"],
						lining: ["#offerPrice .v"],
						rrs: [".cur-price"],
						lifevc: ["#shoppingPanelUpper .shoppingInfo .salePrice"],
						ymatou: ["#proDetail .promotion .count"],
						kjt: [".mainPrice"],
						logitech: [".sale-price"],
						xiji: [".action-price"],
						nike: [".exp-pdp-product-price-container .exp-pdp-local-price"],
						"360kad": ["#pricenumber"],
						meici: [".price"],
						beibei: ["#detail-meta .price-info .price"],
						"100yue": [".action-price"],
						daling: [".goods-price .bold"],
						sfht: [".goods-price-r1 strong"],
						"360buy": ["#jd-price", "#priceinfo", "#teamStatus .p-price", "#summary-price"],
						"51buy": [".xprice_val[itemprop='lowPrice']", ".xprice_val[itemprop='price']", ".price_font"],
						suning: ["#promotionPrice", "#promotionPrice em", "#isquickBuyBoxPrice em", "#bookprdprice", "#netPrice em", "#mainPrice em", "#rpPrice", "#promoPrice", "#ePrice em"],
						yihaodian: ["#detail_prom_price", "#current_price", "#productFacadePrice", "#nonMemberPrice strong", ".pricebox"],
						vancl: [".cuxiaoPrice strong"],
						gome: ["#prdPrice", ".detail .price"],
						okbuy: ["#prodPriceAj"],
						vjia: ["#SpecialPrice"],
						jumei: [".newdeal_deal_price", ".price_now", "#mall_price", ".deal_ori_price .deal_accout_two"],
						jumeiglobal: [".jumei_price"],
						yougou: [".xsbuy_itm strong.price", "#yitianPrice i", "#yitianPrice"],
						shopin: [".selPrice span:eq(1)", ".shopinjg1"],
						vmall: ["#pro-price"],
						sfbest: [".price", "#price font"],
						ouku: ["#pdAllPrice .prc", ".sale-price"],
						womai: ["#buyPrice"],
						"baidu-weigou": ["#new-price", ".old-price"],
						yintai: ["span.yt-num", ".yt-num"],
						feiniu: ["#priceFn", "#J_product_value .fn-rmb-num"],
						jiuxian: ["#actPricePrice", "#_nowPriceStr"],
						zol: [".price-type"],
						feifei: [".price-box .price-detail", ".price-info-value", ".price-box"],
						kzj365: ["#rprice"],
						kaola: ["#js_currentPrice"],
						metao: [".pi_price_box_row .pbox_price", ".price_sendplace .price"]
					},
					subStationPattern: {
						"51buy": "prid",
						yihaodian: "provinceId",
						womai: "siteinfotemp",
						suning: "cityId"
					},
					getSubStationId: function(t) {
						if (t = t || o.getPageInfo().siteName, "undefined" != typeof this.subStationPattern[t])
							for (var n = this.subStationPattern[t] + "=", i = document.cookie.split(";"), r = 0; r < i.length; r++) {
								var s = i[r];
								if (s = e.trim(s), 0 == s.indexOf(n)) {
									var l = s.substring(n.length, s.length);
									if ("51buy" == t) try {
										var d = l.indexOf("_");
										d >= 0 && (l = l.substr(d + 1))
									} catch (c) {
										a.debug && console.log(c)
									}
									return l
								}
							}
						return ""
					},
					tryGetLazyLoadPrice: function(t, n, i, o, r) {
						var s = "",
							l = 0,
							d = {
								"tmall.com": ".tm-price,.tb-wrTuan-num",
								"taobao.com": ".tb-detail-price strong:not(.del)"
							};
						try {
							s = d[t]
						} catch (c) {
							a.debug && console.log(c), s = ""
						}
						var p = setInterval(function() {
							if (++l, e(s).length || l > 5) {
								var a = "";
								e(s).length && (a = e(s).text().split("-")[0], a = parseFloat(a.replace(/[^0-9.]/g, "")), a = parseInt(100 * a) / 100, a = a.toFixed(2)), i += "&price=" + a + "&site=" + t.split(".")[0], clearInterval(p), n(i, o, r)
							}
						}, 1e3)
					}
				}
			}.call(e, n, e, t), !(void 0 !== i && (t.exports = i))
		}).call(e, n(1))
	},
	function(t, e, n) {
		var i;
		(function(a) {
			"use strict";
			i = function() {
				var t = n(12),
					e = n(10);
				return {
					inventoryPatterns: {
						"360buy": {
							"#stocktext strong": "无货",
							"#store-prompt strong": "无货",
							"#stock-state": "无货",
							"#product-intro .itemover-title h3 strong": "商品已下柜"
						},
						"51buy": {
							"#sea_buy_wrap": "到货通知",
							"#buyQty .godds_info_data span[style]": "无货"
						},
						amazon: {
							".a-color-price": "缺货登记",
							".ddm-sbr-avail-title": "缺货登记",
							"#dynamicDeliveryMessage,#ddmAvailabilityMessage": "目前无货",
							"#dynamicDeliveryMessage span": "缺货登记"
						},
						yihaodian: {
							"#arrivalNotice span": "到货通知",
							"#notSaleBtn .cartbox a span": "已售完",
							"#detail_addToCart span.steal_btn": "抢光了",
							".buy_btn3:visible": "已售完",
							"#detailStockInfo": "无货",
							"#addCart": "已售完"
						},
						suning: {
							"#c_kucun span": "无货",
							"#recomTitle": "商品已下架",
							"#c_kucun": "无货"
						},
						dangdang: {
							"#stock_writing_status": "缺货",
							".show_info_right strong.qh": "暂时缺货|罄"
						},
						gome: {
							"#stockTxt": "无货|下架|无货|暂不可送"
						},
						yougou: {
							".buy": "已售罄",
							".soldoutsty .fb": "此颜色商品已售罄"
						},
						vmall: {
							".button-notice-arrival span": "到货通知"
						},
						vancl: {
							".danpin_SouqingTitle h3": "该商品暂不能购买",
							".NowHasGoods": "无货"
						},
						jumei: {
							".soldout_text": "已抢光",
							".add_cart a.subscribe": "订阅到货通知"
						},
						newegg: {
							"#inventory .inventoryText": "暂无|接受预定",
							"#getQueueNumber": "立即预订",
							'.godds_info_data span:contains("库存")': "接受预定"
						},
						moonbasa: {
							"#spanCountk": "无货"
						},
						winxuan: {
							".status": "无货"
						},
						happigo: {
							"#goodskucun .f_red": "无货"
						},
						xijie: {
							".detail_pro_c_con": "很抱歉，该商品已售空"
						},
						lingshi: {
							"#currentLocation": "无货"
						},
						yesmywine: {
							"#delivery-tip": "无货"
						},
						bookuu: {
							".stock span": "无货"
						},
						homevv: {
							"#stock+.hom": "缺货"
						},
						lenovo: {
							"#idstockstatus": "暂无库存"
						},
						secoo: {
							"#location-t+i": "无货"
						},
						yummy77: {
							"#stockdesc": "无货"
						},
						fruitday: {
							".have": "无货"
						},
						kaola: {
							"#js_dometxt": "无货"
						},
						kjt: {
							".black": "无货"
						},
						jiumei: {
							"#kucuninfo .font14": "无货"
						},
						womai: {
							".nobuy_top_tit": "商品已售完，暂时无货",
							".unsellable_recommend_description": "商品已售完"
						},
						sfbest: {
							"#arrival_notice": "到货通知",
							"#stock font": "缺货",
							"#cart-add-btn-sf": "到货|缺货"
						},
						lefeng: {
							".disexp span.stime": "无货"
						},
						leyou: {
							"#stockStatus": "无货"
						},
						jiuxian: {
							"#respNubs": "无货"
						}
					},
					init: function(t) {
						return t = t || e.getPageInfo().siteName, this.getCheckInventory(t)
					},
					getOnlineInventory: function(e) {
						var n = {
								online: null,
								pattern: null
							},
							i = function(t) {
								return t.replace(/[^\u0000-\u00FF]/g, function(t) {
									return escape(t).replace(/(%u)(\w{4})/gi, "\\u$2")
								})
							};
						try {
							if ("undefined" != typeof this.inventoryPatterns[e]) {
								var o = this.inventoryPatterns[e];
								for (var r in o) try {
									if (t(r).is(":visible") && (n.online = t(r).html(), null !== n.online)) return n.online = i(n.online), n.pattern = i(o[r]), n
								} catch (s) {
									a.debug && console.log(s)
								}
							}
						} catch (s) {
							a.debug && console.log(s)
						}
						return n
					},
					getCheckInventory: function(t) {
						var e = 1,
							n = this.getOnlineInventory(t),
							i = n.online,
							o = n.pattern;
						try {
							if (null !== i && "" != i && null !== o)
								if (o.indexOf("|") >= 0) {
									var r = o.split("|");
									for (var s in r) i.indexOf(r[s]) >= 0 && (e = 0)
								} else i.indexOf(o) >= 0 && (e = 0);
							else e = -2
						} catch (l) {
							a.debug && console.log(l)
						}
						return e
					}
				}
			}.call(e, n, e, t), !(void 0 !== i && (t.exports = i))
		}).call(e, n(1))
	},
	function(t, e, n) {
		var i;
		(function(a) {
			"use strict";
			i = function() {
				function t() {
					var t = this;
					r("#gwd_quan_show_list_div").on("click", function() {
						l("click:main:cuxiao"), d.log("主工具栏促销点击")
					}), r("#gwd_quan_btn").mouseover(function() {
						var e = this;
						t.timer_show_div = setTimeout(function() {
							r(".gwd_small_tab").hide(), r(".panel").hide(), r("#gwd_quan_show_list_div").css("left", r(e).offset().left + "px").show()
						}, 300), clearTimeout(t.timer_hide_div), l("hover:main:quan"), d.log("主工具栏优惠券鼠标悬浮")
					}), r("#gwd_quan_btn").mouseout(function() {
						t.timer_hide_div = setTimeout(function() {
							r("#gwd_quan_show_list_div").hide()
						}, 300), clearTimeout(t.timer_show_div)
					}), r("#gwd_quan_btn").click(function(t) {
						return "block" == r("#gwd_quan_show_list_div").css("display") ? r("#gwd_quan_show_list_div").hide() : (r(".gwd_small_tab").hide(), r(".panel").hide(), r("#gwd_quan_show_list_div").css("left", r(this).offset().left + "px").show()), t.stopPropagation(), !1
					}), r("#gwd_quan_show_list_div").mouseenter(function() {
						clearTimeout(t.timer_hide_div)
					}), r("#gwd_quan_show_list_div").mouseleave(function() {
						t.timer_hide_div = setTimeout(function() {
							r("#gwd_quan_show_list_div").hide()
						}, 300)
					}), r("#gwd_quan_show_list_div").click(function() {
						r(".gwd_small_tab").hide()
					})
				}

				function e(t) {
					for (var e = [], n = 0; n < t.length; n++) new Date(t[n].e) > new Date && e.push(t[n]);
					return e
				}

				function i() {
					r("#gwdang-main").append(r("<div>", {
						id: "gwd_quan_show_list_div",
						"class": "gwd_small_tab"
					}).append(r("<div>", {
						"class": "pointer-up"
					}).html("<!--[if IE 6]>◆<![endif]-->")).append(r("<div>", {
						id: "gwd_quan_show_list_content"
					}).append(r("<ul>", {
						id: "gwd_quan_show_list_ul",
						style: "padding:0px;"
					})))), t.call({})
				}

				function o(t) {
					return t && t.indexOf("taobao") >= 0 ? !0 : !1
				}
				var r = n(12),
					s = {},
					l = n(17),
					d = n(19);
				return s.replaceQuan = function(t) {
					if (t && r("#gwdang-b2c-dp").length) {
						var e = r("#gwdang-b2c-dp-detail ul.buy-list li"),
							n = e.length - 1;
						r("#gwdang-b2c-dp-detail ul.buy-list li").eq(n).prepend(r("<a>", {
							target: "_blank",
							style: "float:left",
							href: t.url
						}).text("查看优惠券(" + t.num + ")"))
					}
				}, s.insertShop = function(t) {
					t.quans = e(t.quans), i();
					for (var n = t.quans.length, a = 0; n > a && 5 > a; ++a) {
						var o = t.quans[a];
						r("#gwd_quan_show_list_ul").addClass("shop_promotions").append('<li><a target="_blank" href="http://ff.win.taobao.com/promotion.htm?id=' + t.user_id + '"><div class="gwd-quan-left">满 <span class="gwd-red">' + o.m + '</span> 减 <span class="gwd-red">' + o.j + '</span></div><div class="gwd-quan-right">有效时间: ' + o.s + " ~ " + o.e + " </div></a></li>")
					}
					n && r("#gwd_quan_btn").append('<span class="gwd-red">' + n + "</span>"), r("#gwd_quan_show_list_ul").append(r("<li>", {
						style: "text-align: right;border: none;"
					}).append(r("<a>", {
						title: "查看全部优惠券",
						href: "http://ff.win.taobao.com/promotion.htm?id=" + t.user_id,
						"class": "show_all_quan",
						target: "_blank"
					}).text("查看全部(" + n + ")")))
				}, s.init_shop_promotions_bottom = function(t) {
					t.quans = e(t.quans), t && t.quans && t.quans.length && (a.circleNotice(t), r("#gwd-quan").append(r("<div>", {
						"class": "gwd-detail",
						style: "display:none"
					}).append(r("<p>", {
						"class": "gwd-compare-item-detail-title gwd-height-auto"
					}).append(r("<span>", {
						"class": "gwd-detail-title-desc",
						text: "商城优惠券"
					})).append(r("<a>", {
						"class": "gwd-grey gwd_see_all",
						href: "http://ff.win.taobao.com/promotion.htm?id=" + t.user_id,
						text: "查看全部",
						target: "_blank"
					}))).append(function() {
						for (var e = r("<ul>", {
							id: "gwd_quan_item_list",
							"class": "gwd-item-list shop_promotions"
						}), n = 0; n < t.quans.length && 5 > n; n++) e.append(r("<li>", {
							"class": "gwd-list-item",
							style: "display:block"
						}).append(r("<p>", {
							"class": "gwd-product-title"
						}).append(r("<a>", {
							"class": "gwd-grey gwd-quan-box",
							target: "_blank",
							html: '满 <span class="gwd-red">' + t.quans[n].m + '</span> 减 <span class="gwd-red">' + t.quans[n].j + "</span>",
							href: "http://ff.win.taobao.com/promotion.htm?id=" + t.user_id
						})).append(r("<span>", {
							"class": "gwd-light-grey",
							style: "float:right",
							text: "有效时间: " + t.quans[n].s + " ~ " + t.quans[n].e
						}))));
						return e
					})), r("#gwd-quan").mouseenter(function() {
						r(this).find(".gwd-tab").addClass("gwd-compare-item-hover").end().find(".gwd-detail").show(), a.IE6 && "amazon" == a.site && (r(this).find(".gwd-tab").addClass("gwd-compare-item-hover").end().find(".gwd-detail").show(), r(".gwd-detail").addClass("amazon_hack")), l("hover:main:quan"), d.log("主工具栏优惠券鼠标悬浮")
					}).mouseleave(function() {
						r(this).find(".gwd-tab").removeClass("gwd-compare-item-hover").end().find(".gwd-detail").hide()
					}))
				}, s.init_quan_bottom = function(t) {
					return t ? (r("#gwd-quan").find(".gwd-tab").attr("href", t.url), void(t && t.quans && t.quans.length && (r("#gwd-quan").append(r("<div>", {
						"class": "gwd-detail",
						style: "display:none"
					}).append(r("<p>", {
						"class": "gwd-compare-item-detail-title gwd-height-auto"
					}).append(r("<span>", {
						"class": "gwd-detail-title-desc",
						text: "商城优惠券"
					})).append(r("<a>", {
						"class": "gwd-grey gwd_see_all",
						href: t.url,
						text: "查看全部",
						target: "_blank"
					}))).append(function() {
						for (var e = r("<ul>", {
							id: "gwd_quan_item_list",
							"class": "gwd-item-list"
						}), n = 0; n < t.quans.length && 5 > n; n++) e.append(r("<li>", {
							"class": "gwd-list-item",
							style: "display:block"
						}).append(r("<p>", {
							"class": "gwd-product-title"
						}).append(r("<a>", {
							"class": "gwd-grey gwd-quan-box",
							target: "_blank",
							title: t.quans[n].title,
							href: t.quans[n].url,
							html: t.quans[n].title.replace(/(\d+)/g, "<span class='gwd-red'>$1</span>")
						})).append(r("<span>", {
							"class": "gwd-light-grey",
							style: "float:right",
							text: "剩:" + t.quans[n].rest
						}))));
						return e
					})), r("#gwd-quan").mouseenter(function() {
						r(this).find(".gwd-tab").addClass("gwd-compare-item-hover").end().find(".gwd-detail").show(), a.IE6 && "amazon" == a.site && (r(this).find(".gwd-tab").addClass("gwd-compare-item-hover").end().find(".gwd-detail").show(), r(".gwd-detail").addClass("amazon_hack")), l("hover:main:quan"), d.log("主工具栏优惠券鼠标悬浮")
					}).mouseleave(function() {
						r(this).find(".gwd-tab").removeClass("gwd-compare-item-hover").end().find(".gwd-detail").hide()
					})))) : void r("#gwd-quan").find(".gwd-tab").attr("href", "https://www.gwdang.com/quan/?from=browser&m=promotion")
				}, s.insertQuanShowList = function(t) {
					if (null != t && null != t.quans && 0 != t.quans.length) {
						i();
						for (var e = 0; e < t.quans.length && 5 > e; ++e) r("#gwd_quan_show_list_ul").append(r("<li>", {}).append(r("<a>", {
							title: t.quans[e].title + " 剩:" + t.quans[e].rest + "张",
							href: t.quans[e].url,
							target: "_blank"
						}).html(t.quans[e].title.replace(/(\d+)/g, "<span class='gwd-red'>$1</span>"))).append(r("<span>", {
							"class": "quan_span"
						}).text("剩:" + t.quans[e].rest)));
						r("#gwd_quan_show_list_ul").append(r("<li>", {
							style: "text-align: right;border: none;"
						}).append(r("<a>", {
							title: "查看全部优惠券",
							href: t.url,
							"class": "show_all_quan",
							target: "_blank"
						}).text("查看全部(" + t.num + ")")))
					}
				}, s.getUserId = function(t) {
					if (o(t)) try {
						var e = r("meta[name=microscope-data]").attr("content"),
							n = e.match(/userid=(\d+);/);
						return n[1]
					} catch (i) {
						return 0
					}
					return 0
				}, s.blinkPage = function(t) {
					if (/dongtai\.taobao\.com\/microshop\/front\.htm/.test(t)) try {
						var e = 0,
							n = r(".dt-main-tab_right_sale").eq(0);
						n.css("border", "2px solid red"), n.hover(function() {
							clearInterval(a.timer), n.css("border-color", "#f1eff0")
						}), a.timer = setInterval(function() {
							e++ % 2 == 0 ? n.css("border-color", "#f1eff0") : n.css("border-color", "red")
						}, 500), setTimeout(function() {
							clearInterval(a.timer), n.css("border-color", "#f1eff0")
						}, 1e4)
					} catch (i) {
						if (a.debug) throw i
					}
				}, s
			}.call(e, n, e, t), !(void 0 !== i && (t.exports = i))
		}).call(e, n(1))
	},
	function(t, e, n) {
		var i;
		(function(a) {
			"use strict";
			i = function() {
				var t = n(16),
					e = n(31),
					i = n(32);
				return {
					timeOut: 5,
					timer: null,
					sendTimer: null,
					inventory: null,
					price: null,
					specialSendFlag: !1,
					hasRun: !1,
					init: function() {
						if (!this.hasRun) {
							this.hasRun = !0;
							var t = this,
								e = 0;
							t.timer = setInterval(function() {
								t._setPrice(), t._setInventory(), ++e, (t.specialSendFlag || e > t.timeOut || "-2" != t.inventory && "0" != t.price) && (t._trySendMonitorData(), clearInterval(t.timer))
							}, 1e3)
						}
					},
					_trySendMonitorData: function() {
						var t = this,
							e = 0;
						t.sendTimer = setInterval(function() {
							if (++e, e > t.timeOut || null != a.save_dp_query) {
								var n = "";
								try {
									n = "taobao" == a.site ? a.save_dp_query.exact_arr.taobao_same_id : a.save_dp_query.now.now_dp_id
								} catch (i) {
									if (a.debug) throw i
								}
								t._sendMonitorData(n), clearInterval(t.sendTimer)
							}
						}, 1e3)
					},
					_sendMonitorData: function(e) {
						var n = this;
						null == n.inventory && (n.inventory = "-2"), null == n.price && (n.price = "0"), t.get(a.server + "/brwext/monitor?site=" + a.site + "&subsite_id=" + a.subsite_id + "&dp_id=" + e + "&province_id=" + a.province_id + "&url=" + encodeURIComponent(a.dp.url) + "&price=" + n.price + "&stock=" + n.inventory + "&rawurl=" + encodeURIComponent(window.location.href))
					},
					_setPrice: function() {
						var t = a.site;
						this.price = a.dp.price, this.price || (this.price = e.getOnlinePrice(t)), "taobao" == t && "0" != this.price && (this.specialSendFlag = !0)
					},
					_setInventory: function() {
						this.inventory = i.init(a.site)
					}
				}
			}.call(e, n, e, t), !(void 0 !== i && (t.exports = i))
		}).call(e, n(1))
	},
	function(t, e, n) {
		var i;
		(function(a) {
			"use strict";
			i = function() {
				var t = {},
					e = n(12),
					i = n(13),
					o = n(17),
					r = "http://search.vip.com/search?searchkw=",
					s = a.go_union ? a.go_union : "http://u.gwdang.com/union/go";
				return t.setUnion = function() {
					location.href.indexOf("ju=JUU2JTg4JTkxJUU2JTk4JUFGdmlwc2hvcA") > -1 && e(document).on("click", "a", function() {
						var t = e(this).attr("href");
						0 === t.indexOf("http://www.vip.com/detail-") && (t = s + "?site_id=129&target_url=" + encodeURI(t) + "&union=" + a.union + "&column=search", e(this).attr("href", t), o("click:vip_search:result"))
					})
				}, t.init = function() {
					var t = n(36),
						s = {
							url: r + encodeURIComponent(a.dp.cat_name) + "&ju=JUU2JTg4JTkxJUU2JTk4JUFGdmlwc2hvcA",
							cat_name: a.dp.cat_name
						};
					e(".pi-price-box").after(i.compile(t)({
						data: s
					})), e(".gwd_vip_search_more").on("click", function() {
						o("click:vip_search:dp")
					})
				}, t
			}.call(e, n, e, t), !(void 0 !== i && (t.exports = i))
		}).call(e, n(1))
	},
	function(t, e) {
		t.exports = '<div class="gwd_vip_search_more">\r\n  <a href="{{data.url}}" target="_blank" title="查看更多{{data.cat_name}}......"><span class=\'gwd_vip_search_more_keyword\'>查看更多</span><span class=\'gwd_vip_search_more_name\'>{{data.cat_name}}...</span></a>\r\n\r\n<style type="text/css">\r\n  .gwd_vip_search_more a .gwd_vip_search_more_keyword{\r\n    color: #fff;\r\n    background-color: #f43499;\r\n    text-align: center;\r\n    display: inline-block;\r\n    *display: inline;\r\n    zoom : 1;\r\n    padding : 2px 6px;\r\n    margin-bottom: 5px;\r\n    margin-right: 10px;\r\n  }\r\n  .gwd_vip_search_more a .gwd_vip_search_more_name{\r\n    color:  #f10582;\r\n  }\r\n</style>\r\n</div>'
	},
	function(t, e, n) {
		var i;
		(function(a) {
			"use strict";
			i = function() {
				function t(t) {
					if ("juzi" === a.from_device) return "http://search.jd.com/Search?ju=gjdkuiufoslpldfgogii&activity_id=" + t;
					var e = a.union.replace("union_", "");
					return "https://www.gwdang.com/union/go/?site_id=3&target_url=" + encodeURIComponent("http://search.jd.com/Search?ju=gjdkuiufoslpldfgogii&activity_id=" + t) + "&union=" + e + "&column=activity_robot_" + t + "_browser"
				}

				function e() {
					var t = /item\.jd\.com\/(\d+)\.html/.exec(location.href);
					t && (t = t[1], a.chrome_extension ? r.getJSON("http://pi.3.cn/promoinfo/get?id=" + t).always(function(t) {
						var t = t.responseText.replace(/.*\(/, "").replace(/}\);/, "}");
						t = JSON.parse(t), i(t)
					}) : r.getJSON("http://pi.3.cn/promoinfo/get?id=" + t + "&callback=?").done(function(t) {
						i(t)
					}))
				}

				function i(e) {
					if (1 === r(".J-prom .hl_red_bg").length && 0 === r(".J-prom a").length) {
						for (var n = e.promotionInfoList, i = n.length - 1; i >= 0; i--) 10 == n[i].promoType && (r(".J-prom").html(s.compile(d)({
							before: r(".J-prom").html(),
							url: t(n[i].promoId)
						})), l("track:jdPromo:show"));
						r(".gwd_jd_promo").on("click", function() {
							l("click:jdPromo")
						})
					}
				}
				var o = {},
					r = n(12),
					s = n(13),
					l = n(17),
					d = '<a class="gwd_jd_promo" target="_blank" href="{{url}}">{{#before}}</a><a  class="gwd_jd_promo" href="{{url}}" target="_blank">&nbsp;&nbsp;详情 <s class="s-arrow">&gt;&gt;</s></a>';
				return o.init = function() {
					"360buy" === a.site && setTimeout(function() {
						e()
					}, 2e3)
				}, o.setUnion = function() {
					0 === location.href.indexOf("http://search.jd.com/") && location.href.indexOf("gjdkuiufoslpldfgogii") > -1 && (location.href = location.href.replace("ju=gjdkuiufoslpldfgogii", "").replace("/&cu", "&cu"))
				}, o
			}.call(e, n, e, t), !(void 0 !== i && (t.exports = i))
		}).call(e, n(1))
	},
	function(t, e, n) {
		var i;
		(function(a) {
			"use strict";
			i = function() {
				function t() {
					var t = a.server + "/brwext/version_remind";
					l.get(t).done(function(t) {
						chrome.storage.local.get("gwd_version", function(n) {
							var i = n && n.gwd_version;
							i != t.version && 1 === t.showversion && e(t)
						})
					})
				}

				function e(t) {
					var e = n(39);
					a.chrome_extension && (e = e.replace(/http:\/\/s1\.gwdang\.com\/images/g, chrome.extension.getURL("images"))), s("body").append(d.compile(e)({
						update: t
					})), i(), o(t.version)
				}

				function i() {
					"right" === a.style && s("#gwd_version").hide(), "bottom" === a.style && s("#gwd_version").css("bottom", "60px")
				}

				function o(t) {
					s("#gwd_update_then").on("click", function() {
						chrome.storage.local.set({
							gwd_version: t
						}), s("#gwd_version").hide()
					}), s("#gwd_update_now").on("click", function() {
						s("#gwd_version").hide()
					}), s("#never_remind").on("click", function() {
						chrome.storage.local.set({
							gwd_remind: "never"
						}), s("#gwd_version").hide()
					})
				}

				function r(t) {
					var e = n(40);
					e.on(function(e) {
						"get_btype" === e.type && t(e.value)
					}), e.trigger({
						type: "get_btype"
					})
				}
				var s = n(12),
					l = n(16),
					d = n(13),
					c = {};
				return c.init = function() {
					r(function(e) {
						"chrome" === e && chrome.storage.local.get("gwd_remind", function(e) {
							var n = e && e.gwd_remind;
							"never" !== n && t()
						})
					})
				}, c
			}.call(e, n, e, t), !(void 0 !== i && (t.exports = i))
		}).call(e, n(1))
	},
	function(t, e) {
		t.exports = '<div id="gwd_version">\r\n  <p class="version_head">购物党发现新版本</p>\r\n  <div class="version_content">\r\n    <p class="version_des">说明：{{update.desc}}</p>\r\n    <a id="gwd_update_now" href="http://blog.gwdang.com/?p=6970" target="_blank"></a>\r\n    <a id="gwd_update_then"></a>\r\n    <a id="never_remind" title="点击后将不再提示购物党插件升级">不再提示</a>\r\n  </div>     \r\n  <style type="text/css">\r\n    #gwd_version{\r\n      width: 292px;\r\n      height: 168px;\r\n      border-radius: 11px;\r\n      border: 1px solid #bababa;\r\n      display: block;\r\n      position: fixed;\r\n      bottom: 0px;\r\n      right: 2px;\r\n      background-color: #fff;\r\n      z-index: 999999999999999;\r\n    }\r\n    .version_head{\r\n      height: 38px;\r\n      line-height: 38px;\r\n      text-align: center;\r\n      font-size: 20px;\r\n      color: #fff;\r\n      background-color: #6fb4f3;\r\n      border-top-left-radius: 11px;\r\n      border-top-right-radius: 11px;\r\n    }\r\n    .version_content p{\r\n      font-size: 14px;\r\n      color: #aeaeae;\r\n      margin-top: 17px;\r\n      line-height: 20px;\r\n      margin-left: 19px;\r\n    }\r\n    .version_content a{\r\n      display: inline-block;\r\n      height: 40px;\r\n      width: 108px;\r\n      margin-top: 10px;\r\n      float: left;\r\n      cursor: pointer;\r\n    }\r\n    a#never_remind {\r\n      display: inline;\r\n      width: 34px;\r\n      margin-left: 9px;\r\n      color: #aeaeae;\r\n      text-decoration: underline;\r\n    }\r\n    a#never_remind:hover {\r\n      color: #333;\r\n      text-decoration: underline;\r\n    }\r\n    .version_num{\r\n      margin-top: 8px;\r\n    }\r\n    #gwd_update_now{\r\n      margin-left: 18px;\r\n      background: url(\'https://s1.gwdang.com/images/gwd_update_now.png\') no-repeat;\r\n    }\r\n    #gwd_update_now:hover{\r\n      margin-left: 18px;\r\n      background: url(\'https://s1.gwdang.com/images/gwd_update_now_hover.png\') no-repeat;\r\n    }\r\n    #gwd_update_then{\r\n      background: url(\'https://s1.gwdang.com/images/gwd_update_then.png\') no-repeat;\r\n    }\r\n    #gwd_update_then:hover{\r\n      background: url(\'https://s1.gwdang.com/images/gwd_update_then_hover.png\') no-repeat;\r\n    }\r\n  </style>\r\n</div>'
	},
	function(t, e) {
		"use strict";
		t.exports.trigger = function(t) {
			var e = document.createEvent("CustomEvent");
			e.initCustomEvent("gwd_extension", !0, !0, t), document.dispatchEvent(e)
		}, t.exports.on = function(t) {
			document.addEventListener("gwd_content", function(e) {
				t(e.detail)
			})
		}
	},
	function(t, e, n) {
		(function(e, i) {
			"use strict";
			var a = n(42),
				o = n(16);
			t.exports = function(t) {
				e.maxthon_tmall ? o.raw(t).done(a) : i("head").append('<link type="text/css" href="' + t + '" rel="stylesheet" />')
			}
		}).call(e, n(1), n(12))
	},
	function(t, e) {
		"use strict";
		t.exports = function(t) {
			var e = document.createElement("style");
			e.setAttribute("id", "gwd_css"), e.appendChild(document.createTextNode(t)), document.getElementsByTagName("head")[0].appendChild(e)
		}
	},
	function(t, e, n) {
		(function(t, e) {
			"use strict";
			var i = n(17),
				a = n(19);
			t.extend({
				tab_out: function() {
					e(".gwdang-main .gwdang-tab").css("color", ""), e(".gwdang-main .gwdang-tab").css("height", 36), e(".gwdang-main .gwdang-tab").css("background-color", "")
				},
				tab_in: function(t) {
					"gwdang-tab" == t.attr("class") && (t.css("color", "#177EE5"), t.css("height", 38), t.css("background-color", "white"))
				},
				fixWidth: function() {
					e("#gwdang-bar-compare").width("auto");
					var n = parseInt(e("#" + t.logoName).width()),
						i = parseInt(e("#gwdang-bar-compare").width());
					(t.IE6 || "amazon" == t.site) && i > 800 && (i = 800);
					var a = parseInt(e("#gwdang-bar-icons").width()),
						o = parseInt(e("#gwdang-feed-close").width()),
						r = parseInt(e("#search_website").width()),
						s = this.width - n - i - a - o,
						l = s;
					t.IE6 && (s += 150), s -= 40, s > 300 ? s = 300 : 100 > s && (s = 100), e("#gwdang-search-form").is(":visible") && l - e("#gwdang-search-form").outerWidth() - 160 > 0 && e(".b2c-icon, .tmall-icon, .taobao-icon, .price-trend-icon").show(), 100 >= s && (e(".b2c-icon, .tmall-icon, .taobao-icon, .price-trend-icon, .review-icon, #gwdang-promotion-dp, #gwdang-also_buy").hide(), i = parseInt(e("#gwdang-bar-compare").width()), s = this.width - n - i - a - o), s -= 40, l > 139 && !e("#gwd_zhidemai").is(":visible") && e("#gwd_zhidemai").length > 0 && (e("#gwd_zhidemai").show(), l -= 139), l > 112 && !e("#gwd_lowpri").is(":visible") && e("#gwd_lowpri").length > 0 && (e("#gwd_lowpri").show(), l -= 112), l > 181 && !e("#zdm_img").is(":visible") && e("#zdm_img").length > 0 && (e("#zdm_img").show(), l -= 181), l > 139 && !e("#gwd_comments").is(":visible") && e("#gwd_comments").length > 0 && (e("#gwd_comments").show(), l -= 139), 100 > s ? (s = 100, e("#gwdang-bar-icons").hide(), e("#gwdang-bar-search").hide()) : (s > 300 && (s = 300), e("#gwdang-bar-search").css("width", s).show(), e("#gwdang-bar-icons").show()), 260 > l ? (e("#gwdang-bar-search").hide(), e("#gwdang-bar-icons").hide()) : (e("#gwdang-bar-search").show(), e("#gwdang-bar-icons").show()), 0 > l && e("#zdm_img").is(":visible") && (e("#zdm_img").hide(), l += e("#zdm_img").outerWidth()), 0 > l && e("#gwd_comments").is(":visible") && (e("#gwd_comments").hide(), l += e("#gwd_comments").outerWidth()), 0 > l && e("#gwd_lowpri").is(":visible") && e("#gwd_lowpri").hide(l += e("#gwd_lowpri").outerWidth()), 0 > l && e("#gwd_zhidemai").is(":visible") && e("#gwd_zhidemai").hide(l += e("#gwd_zhidemai").outerWidth()), "msie" == t.browser.agent && t.browser.ver <= 8 ? (t.IE8 && ("dangdang" == t.site ? e("#gwdang-search-product").css("width", s - r - 8) : e("#gwdang-search-product").css("width", s - r - 1)), t.IE7 && e("#gwdang-search-product").css("width", s - r - 8), t.IE6 && e("#gwdang-search-product").css("width", s - r - 8)) : "dangdang" == t.site ? e("#gwdang-search-product").css("width", s - r - 3) : e("#gwdang-search-product").css("width", s - r - 2), t.IE8 && "yougou" == t.site && e("#gwdang-search-product").css("width", s - r - 8), t.IE6 && e("#gwdang-main").width(this.width), e(window).trigger("reShowPriceTrend")
				},
				init_item_list: function(n) {
					if (n = "undefined" == typeof n ? "all" : n, "all" != n) {
						var i = e("#" + n + "-item-list").children();
						t.total_num[n] = i.length
					} else
						for (var a = 0; a < t.module_name.length; a++) this.init_item_list(t.module_name[a])
				},
				set_page_args: function(n) {
					if (n = "undefined" == typeof n ? "all" : n, "all" != n) e("#" + n + "-current-page").html(t.page_now[n]), e("#" + n + "-page-num").html(t.page_total[n]);
					else
						for (var i = 0; i < t.module_name.length; i++) this.set_page_args(t.module_name[i])
				},
				set_item_args: function(e) {
					e = "undefined" == typeof e ? "all" : e;
					var n = document.documentElement.clientWidth > 0 ? document.documentElement.clientWidth : document.body.clientWidth;
					if (n = 800 > n ? 800 : n, t.page_size = parseInt((n - 80) / 200), t.page_size_mini = parseInt((n - 310) / 200), "all" != e) "also_buy" == e || "b2c_fuzzy" == e || "taobao" == e || "tmall" == e || "lowpri" == e || "zhidemai" == e ? (t.page_now[e] = 1, t.page_total[e] = t.total_num[e] % t.page_size == 0 ? parseInt(t.total_num[e] / t.page_size) : parseInt(t.total_num[e] / t.page_size) + 1) : (t.page_now[e] = 1, t.page_total[e] = t.total_num[e] % t.page_size_mini == 0 ? parseInt(t.total_num[e] / t.page_size_mini) : parseInt(t.total_num[e] / t.page_size_mini) + 1);
					else
						for (var i = 0; i < t.module_name.length; i++) this.set_item_args(t.module_name[i])
				},
				change_page: function(n, i, a) {
					var o = t.page_size_mini;
					("also_buy" == n || "b2c_fuzzy" == n || "taobao" == n || "tmall" == n || "lowpri" == n || "zhidemai" == n) && (o = t.page_size), "undefined" != typeof a ? t.page_now[n] = a >= 1 && a <= t.page_total[n] ? a : 1 : -1 == i ? t.page_now[n] = 1 == t.page_now[n] ? t.page_total[n] : --t.page_now[n] : 1 == i && (t.page_now[n] = t.page_now[n] == t.page_total[n] ? 1 : ++t.page_now[n]), e("#" + n + "-current-page").html(t.page_now[n]);
					var r = (t.page_now[n] - 1) * o,
						s = t.page_now[n] * o;
					s = s > t.total_num[n] ? t.total_num[n] : s, this.load_image(n, r, s)
				},
				check_animate: function() {
					try {
						if ("undefined" == typeof e("<div>").animate) return !1
					} catch (t) {
						return !1
					}
					return !0
				},
				check_image: function(n, i, a) {
					var o = "undefined" == typeof a || "" == a || null == a ? 90 : a,
						r = n,
						s = new Image,
						l = document.getElementById(i);
					"msie" == t.browser.agent && t.browser.ver < 11 ? s.onreadystatechange = function() {
						if ("complete" == s.readyState || "loaded" == s.readyState) {
							if (s.width > 0 && s.height > 0) {
								var t = o / s.width < o / s.height ? o / s.width : o / s.height;
								1 >= t ? (e("#" + i).css("width", s.width * t), e("#" + i).css("height", s.height * t)) : (e("#" + i).css("width", s.width), e("#" + i).css("height", s.height))
							}
							e("#" + i).attr("src", n)
						}
					} : s.onload = function() {
						if (1 == s.complete) {
							if (s.width > 0 && s.height > 0) {
								var t = o / s.width < o / s.height ? o / s.width : o / s.height;
								1 >= t ? (e("#" + i).css("width", s.width * t), e("#" + i).css("height", s.height * t)) : (e("#" + i).css("width", s.width), e("#" + i).css("height", s.height))
							}
							e("#" + i).attr("src", n)
						}
					}, s.onerror = function() {
						l.src = "http://browser.gwdang.com/template/aug/images/default_load_image.png", l.width = l.getAttribute("d_width"), l.height = l.getAttribute("d_width"), l.setAttribute("data-original", "http://browser.gwdang.com/template/aug/images/default_load_image.png")
					}, s.src = r
				},
				editOriginal: function(n) {
					e(n).each(function() {
						var n = e(this),
							i = e(this).attr("id");
						n.attr("data-original") != n.attr("src") && t.check_image(n.attr("data-original"), i)
					})
				},
				load_image: function(t, n, i) {
					var a = this,
						o = new Object;
					if (o.userAgent = window.navigator.userAgent.toLowerCase(), o.ie = /msie/.test(o.userAgent), o.Moz = /gecko/.test(o.userAgent), "undefined" == typeof t) return !1;
					var r = e("#" + t + "-item-list li"),
						s = e("#" + t + "-item-list");
					if (o.ie || !this.check_animate()) {
						e(r).css("display", "none");
						for (var l = n; i > l; l++) e("#" + t + "-prod-item-" + l).css("display", "block");
						for (var l = n; i > l; l++) {
							var d = "#" + t + "-prod-item-" + l + " .gwdang-lazy";
							a.editOriginal(d)
						}
					} else s.animate({
						opacity: "0"
					}, 100, "swing", function() {
						e(r).css("display", "none");
						for (var o = n; i > o; o++) e("#" + t + "-prod-item-" + o).css("display", "block");
						s.animate({
							opacity: "1"
						}, 100, "swing", function() {
							for (var e = n; i > e; e++) {
								var o = "#" + t + "-prod-item-" + e + " .gwdang-lazy";
								a.editOriginal(o)
							}
						})
					})
				},
				setPageArgs: function(n, i) {
					e("#" + n + ">li").each(function() {
						var n = e(this).find(".gwd-list-item"),
							a = n.length,
							o = a % i == 0 ? parseInt(a / i) : parseInt(a / i) + 1,
							r = 0,
							s = e(this).find("em[id^=page-now]");
						t.loadImage(n, 0, i), e(this).find(".gwd-left").click(function() {
							if (r >= 0) {
								r--, 0 > r && (r = o - 1);
								for (var e = r * i, l = (r + 1) * i, d = 0; a > d; d++) d >= e && l > d ? n.eq(d).css("display", "block") : n.eq(d).hide();
								t.loadImage(n, e, l), s.text(r + 1)
							}
						}), e(this).find(".gwd-right").click(function() {
							if (o - 1 >= r) {
								r++, r == o && (r = 0);
								for (var e = 0, l = r * i, d = (r + 1) * i; a > e; e++) e >= l && d > e ? n.eq(e).css("display", "block") : n.eq(e).hide();
								t.loadImage(n, l, d), s.text(r + 1)
							}
						})
					})
				},
				loadImage: function(e, n, i, a) {
					var o = 90;
					a && (o = a);
					for (var r = n; i > r; r++) {
						var s = e.eq(r).find("img").eq(0);
						s.attr("data-original") != s.attr("src") && t.checkImage(s.attr("data-original"), s, o)
					}
				},
				checkImage: function(e, n, i, a) {
					var o = "undefined" == typeof i || "" == i || null == i ? 90 : i,
						r = e,
						s = new Image;
					"msie" == t.browser.agent && t.browser.ver < 11 ? s.onreadystatechange = function() {
						if ("complete" == s.readyState || "loaded" == s.readyState) {
							if (s.width > 0 && s.height > 0) {
								var t = o / s.width < o / s.height ? o / s.width : o / s.height;
								1 >= t ? (n.css("width", s.width * t), n.css("height", s.height * t)) : (n.css("width", s.width), n.css("height", s.height))
							}
							n.attr("src", e)
						}
					} : s.onload = function() {
						if (1 == s.complete) {
							if (s.width > 0 && s.height > 0) {
								var t = o / s.width < o / s.height ? o / s.width : o / s.height;
								1 >= t ? (n.css("width", s.width * t), n.css("height", s.height * t)) : (n.css("width", s.width), n.css("height", s.height))
							}
							n.attr("src", e), a && a()
						}
					}, s.onerror = function() {
						n.attr("src", t.s_server + "/images/dp_default.jpg"), n.attr("data-original", t.s_server + "/images/dp_default.jpg")
					}, s.src = r
				},
				getFixedShowProductNum: function() {
					return parseInt((t.width - 66) / 200)
				},
				setMouseOverHandler: function() {
					var n = "mouseenter",
						o = "mouseleave";
					e("#gwdang-notifier").delegate("span.gwd-compare-item, div.gwd-compare-item-detail", n, function() {
						clearTimeout(t.timer2);
						var n = e(this).parents().eq(0);
						"gwd-compare-item" === e(this)[0].className && (i("hover:main:compare"), a.log("主工具栏比价鼠标悬浮")), e(this)[0].className.indexOf("gwd-trend") > -1 && (i("hover:main:pricetrend"), a.log("主工具栏价格趋势鼠标悬浮")), e("div.gwd-compare-item-detail").hide(), e("span.gwd-compare-item").removeClass("gwd-compare-item-hover"), n.children("span.gwd-compare-item").addClass("gwd-compare-item-hover"), n.children("div.gwd-compare-item-detail").css("display", "block")
					}), e("#gwdang-notifier").delegate("span.gwd-compare-item, div.gwd-compare-item-detail", o, function() {
						clearTimeout(t.timer2);
						var n = e(this).parents().eq(0);
						t.timer2 = setTimeout(function() {
							n.children("span.gwd-compare-item").removeClass("gwd-compare-item-hover"), n.children("div.gwd-compare-item-detail").hide()
						}, 200)
					}), e("#gwdang-notifier").delegate("span.gwd-compare-item", "click", function() {
						window.open(e(this).attr("href"))
					}), e("#gwdang-notifier").delegate("#gwd_favor,#gwd-favor-detail", n, function() {
						e("a.gwd-compare-item").removeClass("gwd-compare-item-hover"), e("#gwd_favor").addClass("gwd_favor_hover"), e("div.gwd-compare-item-detail").hide(), e("#gwd-favor-detail").show(), i("hover:main:favor"), a.log("主工具栏收藏夹鼠标悬浮")
					}), e("#gwdang-notifier").delegate("#gwd_favor,#gwd-favor-detail", o, function() {
						e("#gwd_favor").removeClass("gwd_favor_hover"), e("#gwd-favor-detail").hide()
					}), t.IE6 && (e("#gwdang-notifier").delegate(".gwd_product_comment_amount", n, function() {
						e(this).addClass("ies_hover"), e(this).find("span").css("text-decoration", "underline")
					}), e("#gwdang-notifier").delegate(".gwd_product_comment_amount", o, function() {
						e(this).removeClass("ies_hover"), e(this).find("span").css("text-decoration", "none")
					}))
				},
				getFixedCompareNum: function() {
					var n = 270;
					t.IE6 && (n += 60), "block" == e("#gwd-trend").css("display") && (n += 120), "block" == e("#gwd-search").css("display") && (n += 220), "block" == e("#gwd-compare-tmall").css("display") && (n += e("#gwd-compare-tmall span").eq(0).outerWidth()), "block" == e("#gwd-compare-taobao").css("display") && (n += e("#gwd-compare-taobao span").eq(0).outerWidth()), "block" == e("#gwd-more").css("display") && (n += 60), "block" == e("#gwd-douban").css("display") && (n += 80);
					var i = t.width - n,
						a = 0;
					return e("#gwd-compare>li").each(function() {
						t.IE6 ? i - 80 >= e(this).outerWidth() && (i -= e(this).outerWidth(), ++a) : i >= e(this).outerWidth() && (i -= e(this).outerWidth(), ++a)
					}), a
				},
				autoFixWidth: function(i) {
					var a = n(44),
						o = n(50),
						r = e("#gwdang-notifier"),
						s = i || r.attr("b2c") && "fuzzy" == r.attr("b2c");
					if (s = !1, 1 != r.attr("auto")) {
						t.width < 1e3 ? e("#gwd-search").css("display", "none") : (e("#gwd-search").css("display", "block"), "amazon" == t.site && e(".gwd-search-input").addClass("amazon_hank"));
						var l = e("#gwd-compare>li"),
							d = l.length,
							c = t.getFixedCompareNum();
						d - c >= 2 ? s || (e("#gwd-search").attr("show", 0).hide(), c = t.getFixedCompareNum()) : c - d >= 2 && (e("#gwd-search").attr("show", 1).show(), c = t.getFixedCompareNum());
						for (var p = 0; d > p; p++) c > p ? l.eq(p).show() : l.eq(p).hide();
						a.setBottomViewOffset(), o.setBottomViewOffset()
					}
				},
				circleNotice: function(n, i) {
					if (n || i) {
						var a = "";
						n && (a += ".gwd-quan", t.show_quan = 1), i && (a += "" === a ? "" : ",", a += ".gwd-cu", t.show_cu = 1), "" != a && e(a).css("position", "relative").append(e("<b>", {
							"class": "gwd-bg gwd-cu-circle"
						}))
					}
				}
			})
		}).call(e, n(1), n(12))
	},
	function(t, e, n) {
		var i;
		(function(a) {
			"use strict";
			i = function() {
				var t = n(12),
					e = n(16),
					i = n(45);
				return {
					init: function(t, n) {
						if (null != a.saveTbResData) return void this.renderTaobaoUI(a.saveTbResData);
						var o = this,
							r = t.exact_arr;
						(0 == r.price || "" == r.price) && (r.price = 100 * a.dp.price);
						var t = "union=" + encodeURIComponent(a.union) + "&url=" + encodeURIComponent(r.url) + "&site=" + r.site + "&isbn=" + r.isbn + "&keywords=" + encodeURIComponent(r.keywords) + "&brand=" + encodeURIComponent(r.brand) + "&type=" + encodeURIComponent(r.type) + "&taobao_same_id=" + r.taobao_same_id + "&price=" + r.price + "&class_id=" + r.taobao_class_id + "&name=" + encodeURIComponent(a.dp.name);
						e.get(a.server + "/brwext/tbres_new?" + t).done(function(t) {
							i.getEtaoInfo(t, function(t) {
								1 === a.gwd_browser_type && (t = o.addServerMark(t)), a.saveTbResData = t, o.renderTaobaoUI(t)
							})
						})
					},
					addServerMark: function(t) {
						if (t.tmall && t.tmall.product) {
							for (var e = 0, n = t.tmall.store.length; n > e; e++) t.tmall.store[e].url += "&servermark=1&from_site=" + a.site;
							for (var e = 0, n = t.tmall.product.length; n > e; e++) t.tmall.product[e].url += "&servermark=1&from_site=" + a.site
						}
						if (t.taobao && t.taobao.product) {
							for (var e = 0, n = t.taobao.store.length; n > e; e++) t.taobao.store[e].url += "&servermark=1&from_site=" + a.site;
							for (var e = 0, n = t.taobao.product.length; n > e; e++) t.taobao.product[e].url += "&servermark=1&from_site=" + a.site
						}
						return t
					},
					renderTaobaoUI: function(e) {
						var n = this,
							i = a.getFixedShowProductNum();
						n.showBottomView("tmall", e), n.showBottomView("taobao", e), a.setPageArgs("gwd-compare-tmall", i), a.setPageArgs("gwd-compare-taobao", i), n.setBottomViewOffset(), a.autoFixWidth(), "" == e.search.keywords && "" != a.dp.isbn && t(".gwd-search-input").val(a.dp.isbn), "" != e.search.keywords && t(".gwd-search-input").val(e.search.keywords), "vipshop" === a.site && t(".gwd-search-input").val(a.dp.cat_name), t(window).bind("reDrawTaobaoBanner", function() {
							var t = a.getFixedShowProductNum();
							n.showBottomView("tmall", e), n.showBottomView("taobao", e), a.setPageArgs("gwd-compare-tmall", t), a.setPageArgs("gwd-compare-taobao", t), n.setBottomViewOffset()
						}), 1 == a.p_fold && t(".gwd-close-module").hide()
					},
					showBottomView: function(e, n) {
						var i = a.getFixedShowProductNum(),
							o = "";
						if ("tmall" == e ? o = "天猫商城" : "taobao" == e && (o = "淘宝网"), n.site && (o = "同类热卖"), n[e] && n[e].min_price) {
							if (n[e].product.length > 0) {
								var r = n[e],
									s = r.product[0],
									l = parseInt(r.product.length),
									d = l % i == 0 ? parseInt(l / i) : parseInt(l / i) + 1,
									c = t("<li>");
								c.append(t("<span>", {
									"class": "gwd-compare-item",
									href: s.url,
									target: "_blank"
								}).append(t("<p>", {
									style: "height:10px;display:none;",
									"class": "gwd-iszwf"
								}).html("&nbsp")).append(t("<p>", {
									"class": "gwd-price"
								}).html("&yen;" + r.min_price + (r.max_price != r.min_price ? "~" + r.max_price : ""))).append(t("<p>", {
									"class": "gwd-store"
								}).text(o)).append(t("<p>", {
									style: "height:10px;display:none;",
									"class": "gwd-iszwf"
								}).html("&nbsp")));
								var p = t("<div>", {
									"class": "gwd-compare-item-detail re-gwd-compare-item-detail gwd-compare-item-detail-fixed",
									style: "display:none;"
								});
								p.append(t("<p>", {
									"class": "gwd-compare-item-detail-title gwd-height-auto gwd-compare-item-detail-title-fixed"
								}).append(t("<span>", {
									"class": "gwd-compare-item-detail-title-desc"
								}).text(o + "：不同卖家运费不同")));
								for (var h = t("<ul>", {
									"class": "gwd-item-list"
								}), u = 0; l > u; u++) {
									var g = r.product[u];
									h.append(t("<li>", {
										"class": "gwd-list-item " + (u % i == i - 1 || u == l - 1 ? "gwd-last" : ""),
										style: "display: " + (u >= i ? "none" : "block")
									}).append(t("<a>", {
										"class": "gwd-pic",
										href: g.url,
										target: "_blank"
									}).append(t("<img>", {
										src: a.s_server + "/images/dp_default.jpg",
										"data-original": g.pic_url,
										title: g.title
									}))).append(t("<a>", {
										"class": "gwd-product-title",
										href: g.url,
										target: "_blank",
										title: g.title
									}).text(g.title)).append(t("<a>", {
										"class": "gwd-price",
										href: g.url,
										target: "_blank"
									}).html("&yen;" + g.price)))
								}
								var m = t("<div>", {
									"class": "gwd-tb-tm-PageView gwd-b2c-PageView-fixed"
								});
								if (m.append(t("<p>", {
									"class": "gwd-compare-item-detail-title",
									style: "height:auto;"
								}).append(t("<span>", {
									style: "float:none;padding-left:10px;",
									"class": "gwd-compare-item-detail-pages"
								}).append(t("<em>", {
									id: "page-now-" + e,
									"class": "page-now"
								}).text("1")).append("/").append(t("<em>", {
									id: "page-total-" + e,
									"class": "page-total"
								}).text("1")))), p.append(t("<div>", {
									"class": "gwd-compare-prev-page gwd-left"
								}).append(t("<div>", {
									"class": "gwd-bg page-arrow"
								}))).append(h).append(t("<div>", {
									"class": "gwd-compare-next-page gwd-right"
								}).append(t("<div>", {
									"class": "gwd-bg page-arrow"
								}))).append(m), c.append(p), t("#gwd-compare-" + e).html(""), t("#gwd-compare-" + e).append(c), 1 == d) {
									c.find(".gwd-compare-prev-page").hide(), c.find(".gwd-compare-next-page").hide(), c.find(".gwd-b2c-PageView-fixed").hide(), c.attr("pages", 1), c.attr("len", l);
									var f = 200 * l;
									c.children("div.gwd-compare-item-detail-fixed").css("width", f + 2)
								} else c.children("div.gwd-compare-item-detail-fixed").css("width", a.width - 2);
								t("#page-total-" + e).text(d)
							}
							t("#gwd-compare-" + e).css("display", "block")
						}
						t("#gwd-compare-tmall,#gwd-compare-taobao").each(function() {
							t(this).find("a.gwd-compare-item,a.gwd-pic,a.gwd-product-title,a.gwd-price").each(function() {
								t(this).attr("rel", "noreferrer").attr("href", t(this).attr("href") + a.ut)
							})
						}), "fuzzy" == t("#gwdang-notifier").attr("b2c") && t(".gwd-iszwf").show()
					},
					setBottomViewOffset: function() {
						t("#gwd-compare-tmall li,#gwd-compare-taobao li").each(function() {
							var e = t(this);
							if ("1" == e.attr("pages")) {
								var n = e.offset().left,
									i = e.width(),
									o = 200 * parseInt(e.attr("len")),
									r = n - (o / 2 - i / 2);
								0 > r && (r = 0);
								var s = a.width - r;
								a.IE6 ? (r = i / 2 - o / 2, 0 > r + n && (r = -n), e.children("div.gwd-compare-item-detail-fixed").css("position", "absolute").css("left", r), e.find(".gwd-compare-item-detail-title-fixed").css("left", 0)) : s > o ? (e.children("div.gwd-compare-item-detail-fixed").css("left", r), e.find(".gwd-compare-item-detail-title-fixed").css("left", r)) : (e.children("div.gwd-compare-item-detail-fixed").css("left", a.width - o), e.find(".gwd-compare-item-detail-title-fixed").css("left", a.width - o))
							} else if (a.IE6) {
								var n = e.offset().left,
									r = 0 - n;
								e.children("div.gwd-compare-item-detail-fixed").css("position", "absolute").css("left", r), e.find(".gwd-compare-item-detail-title-fixed").css("left", 0)
							}
						})
					}
				}
			}.call(e, n, e, t), !(void 0 !== i && (t.exports = i))
		}).call(e, n(1))
	},
	function(t, e, n) {
		(function(e, i) {
			"use strict";
			var a = n(44),
				o = n(40),
				r = n(16);
			t.exports.init = function(t) {
				if (null != e.save_tbres_data) return void this.renderTbres(e.save_tbres_data);
				var n = this,
					o = t.exact_arr;
				(0 == o.price || "" == o.price) && (o.price = 100 * e.dp.price), e.dp.min_price = parseInt(100 * e.dp.min_price), e.dp.max_price = parseInt(100 * e.dp.max_price), r.get(e.server + "/brwext/tbres?union=" + encodeURIComponent(e.union) + "&url=" + encodeURIComponent(o.url) + "&site=" + o.site + "&isbn=" + o.isbn + "&keywords=" + encodeURIComponent(o.keywords) + "&brand=" + encodeURIComponent(o.brand) + "&type=" + encodeURIComponent(o.type) + "&taobao_same_id=" + encodeURIComponent(o.taobao_same_id) + "&price=" + encodeURIComponent(o.price) + "&min_price" + encodeURIComponent(e.dp.min_price) + "&max_price" + encodeURIComponent(e.dp.max_price) + "&b2c_class_id=" + encodeURIComponent(t.now.class_id) + "&class_id=" + encodeURIComponent(o.taobao_class_id) + "&name=" + encodeURIComponent(e.dp.name)).done(function(t) {
					n.getEtaoInfo(t, function(t) {
						1 === e.gwd_browser_type && (t = a.addServerMark(t)), e.save_tbres_data = t, n.renderTbres(t)
					})
				}).fail(function() {
					"right" == e.style && (i("#plt-tmall-block").hide(), i("#plt-taobao-block").hide())
				})
			}, t.exports.renderTbres = function(t) {
				"top" == e.style ? (this.show_taobao_products_top(t), e.fixWidth()) : "right" == e.style && this.show_taobao_products_right(t)
			}, t.exports.show_taobao_products_top = function(t) {
				try {
					if ("undefined" != typeof t.tmall.min_price) {
						if (0 == t.search.is_exact && e.site.indexOf("taobao") >= 0) {
							var a = i("#gwdang-tmall-dp").html();
							a = a.replace(/\u5929\u732b/gi, "天猫相似款"), i("#gwdang-tmall-dp").html(a)
						}
						if (i("#gwdang-tmall-dp .gwd-price").html("&yen;" + t.tmall.min_price), i("#gwdang-tmall-dp").show(), i("#gwdang-tmall-dp-detail").append(i("<div>", {
							"class": "panel-wrap"
						}).append(i("<div>", {
							"class": "pages"
						}).append("第 ").append(i("<span>", {
							"class": "current-page",
							id: "tmall-current-page"
						}).text("1")).append(" 页，共 ").append(i("<span>", {
							"class": "page-num",
							id: "tmall-page-num"
						}).text("1")).append(" 页")).append(i("<div>", {
							"class": "left-page",
							style: "left:5px;"
						}).append(i("<a>", {
							id: "tmall-prev-page",
							target: "_self",
							title: "上一页",
							href: "javascript:"
						}).click(function() {
							e.change_page("tmall", -1)
						}))).append()), i("#gwdang-tmall-dp-detail .buy-list").append("<li><b>天猫(淘宝商城)在卖：</b></li>"), t.tmall.store.length > 0) {
							for (var o = 0; o < t.tmall.store.length && !(o >= 6); o++) {
								var r = t.tmall.store[o],
									s = i("<li></li>");
								s.append('<img class="store" src="' + r.icon_url + '">'), s.append('<a href="' + r.url + e.ut + '" target="_blank" rel="noreferrer"><span class="gwd_title"' + ("yiguo" == e.site ? 'style="margin-bottom:0;border-bottom:none;clear:none;"' : "") + ">" + r.nick + "</span></a>"), s.append('<a href="' + r.url + e.ut + '" target="_blank" rel="noreferrer"><span class="price">&yen;' + r.price + "</span></a>"), s.appendTo("#gwdang-tmall-dp-detail .buy-list")
							}
							i("#gwdang-tmall-dp-detail .buy-list").append('<li><a href="' + t.tmall.more_link + '" target="_blank"><span class="show-all">查看更多结果</span></a></li>'), i("#gwdang-tmall-dp-detail").append('<div class="recom-title" style="position: absolute;left: 35px;top: 5px;font-weight: bold;z-index: 9999999999;"><a style="font-weight:bold;cursor:pointer;" href="' + t.tmall.more_link + '" target="_blank">购物党过滤了部分价格过低的商品，点此查看全部结果</a></div>')
						}
						if (i("#gwdang-tmall-dp-detail .panel-wrap").append('<div class="all-products" style="left:35px;"><ul id="tmall-item-list"></ul></div>'), t.tmall.product.length > 0)
							for (var o = 0; o < t.tmall.product.length; o++) {
								var r = t.tmall.product[o],
									s = i('<li id="tmall-prod-item-' + o + '"></li>');
								s.append('<a id="img-tmall-' + r.num_iid + '" title="' + r.title + '" target="_blank" class="small-img" href="' + r.url + e.ut + '" rel="noreferrer"><img data-original="' + r.pic_url + '" src="http://browser.gwdang.com/template/aug/images/new/120.gif" id="dp-image-small-tmall-' + r.num_iid + '" class="gwdang-lazy"></a>'), s.append('<a target="_blank" title="' + r.title + '" href="' + r.url + e.ut + '" rel="noreferrer"><span class="gwd-price"> &yen;' + r.price + "</span></a>"), s.append('<p class="dp"><a target="_blank" title="' + r.title + '" href="' + r.url + e.ut + '" rel="noreferrer"><span>最近销量' + r.volume + '件</span></a><br><a target="_blank" title="' + r.title + '" href="' + r.url + e.ut + '" rel="noreferrer"><span class="store">' + r.nick + '</span></br></a><a target="_blank" title="' + r.title + '" href="' + r.url + e.ut + '" rel="noreferrer"><span class="gwd_title">' + r.title + "</span></a></p>"), s.appendTo("#tmall-item-list")
							}
						i("#gwdang-tmall-dp-detail .panel-wrap").append(i("<div>", {
							"class": "right-page"
						}).append(i("<a>", {
							id: "tmall-next-page",
							target: "_self",
							title: "下一页",
							href: "javascript:"
						}).click(function() {
							e.change_page("tmall", 1)
						}))), i("#gwdang-tmall-dp-detail").append('<div class="panel-shadow"></div>')
					}
				} catch (l) {
					if (e.debug) throw l
				}
				try {
					if ("undefined" != typeof t.taobao.min_price) {
						if (0 == t.search.is_exact && e.site.indexOf("taobao") >= 0) {
							var a = i("#gwdang-taobao-dp").html();
							a = a.replace(/\u6dd8\u5b9d/gi, "淘宝相似款"), i("#gwdang-taobao-dp").html(a)
						}
						if (i("#gwdang-taobao-dp .gwd-price").html("&yen;" + t.taobao.min_price), i("#gwdang-taobao-dp").show(), i("#gwdang-taobao-dp-detail").append('<div class="recom-title" style="position: absolute;left: 35px;top: 5px;font-weight: bold;z-index: 9999999999;"><a style="font-weight:bold;cursor:pointer;" href="' + t.taobao.more_link + '" target="_blank">购物党过滤了部分价格过低的商品，点此查看全部结果</a></div>'), i("#gwdang-taobao-dp-detail").append(i("<div>", {
							"class": "panel-wrap"
						}).append(i("<div>", {
							"class": "pages"
						}).append("第 ").append(i("<span>", {
							"class": "current-page",
							id: "taobao-current-page"
						}).text("1")).append(" 页，共 ").append(i("<span>", {
							"class": "page-num",
							id: "taobao-page-num"
						}).text("1")).append(" 页")).append(i("<div>", {
							"class": "left-page",
							style: "left:5px;"
						}).append(i("<a>", {
							title: "上一页",
							target: "_self",
							href: "javascript:"
						}).click(function() {
							e.change_page("taobao", -1)
						})))), i("#gwdang-taobao-dp-detail .panel-wrap").append('<div class="all-products" style="left:35px;"><ul id="taobao-item-list"></ul></div>'), t.taobao.product.length > 0)
							for (var o = 0; o < t.taobao.product.length; o++) {
								var r = t.taobao.product[o],
									s = i('<li id="taobao-prod-item-' + o + '"></li>');
								s.append('<a id="img-taobao-' + r.num_iid + '" title="' + r.title + '" target="_blank" class="small-img" href="' + r.url + e.ut + '" rel="noreferrer"><img data-original="' + r.pic_url + '" src="http://browser.gwdang.com/template/aug/images/new/120.gif" id="dp-image-small-taobao-' + r.num_iid + '" class="gwdang-lazy"></a>'), s.append('<a target="_blank" title="' + r.title + '" href="' + r.url + e.ut + '" rel="noreferrer"><span class="gwd-price"> &yen;' + r.price + "</span></a>"), s.append('<p class="dp"><a target="_blank" title="' + r.title + '" href="' + r.url + '"><span>最近销量' + r.volume + '件</span></a><br><a target="_blank" title="' + r.title + '" href="' + r.url + e.ut + '" rel="noreferrer"><span class="location">' + r.item_location + '</span></a><a target="_blank" title="' + r.title + '" href="' + r.url + e.ut + '" rel="noreferrer"></a></br><a target="_blank" title="' + r.title + '" href="' + r.url + e.ut + '" rel="noreferrer"><span class="gwd_title">' + r.title + "</span></a></p>"), s.appendTo("#taobao-item-list")
							}
						i("#gwdang-taobao-dp-detail .panel-wrap").append(i("<div>", {
							"class": "right-page"
						}).append(i("<a>", {
							title: "下一页",
							target: "_self",
							href: "javascript:"
						}).click(function() {
							e.change_page("taobao", 1)
						}))), i("#gwdang-taobao-dp-detail").append('<div class="panel-shadow"></div>')
					}
				} catch (l) {
					if (e.debug) throw l
				}
				"vipshop" === e.site ? i("#gwdang-search-product").val(e.dp.cat_name) : ("" == t.search.keywords && "" != e.dp.isbn && i("#gwdang-search-product").val(e.dp.isbn), i("#gwdang-search-product").val("" != t.search.keywords ? t.search.keywords : t.collectInfo.title)), e.init_item_list("tmall"), e.set_item_args("tmall"), e.set_page_args("tmall"), e.load_image("tmall", 0, e.page_size), e.init_item_list("taobao"), e.set_item_args("taobao"), e.set_page_args("taobao"), e.load_image("taobao", 0, e.page_size), n(46).init()
			}, t.exports.show_taobao_products_right = function(t) {
				i("#plt-tmall-block").html(""), i("#plt-taobao-block").html(""), "undefined" != typeof t.tmall.min_price ? (i("#tbprice .price_num").html(t.tmall.min_price), i("#tbprice").show()) : "undefined" != typeof t.taobao.min_price && (i("#tbprice .price_num").html(t.taobao.min_price), i("#tbprice").show());
				try {
					if (t.tmall.product.length > 0) {
						var n = i("#plt-tmall-block");
						n.show(), n.append("<h4>天猫(淘宝商城)在卖:</h4>");
						for (var a = 0; a < t.tmall.product.length; a++) {
							var o = t.tmall.product[a];
							if (n.append('<div class="plt-main-img-taobao"><a title="' + o.title + '" href="' + o.url + e.ut + '" target="_blank" rel="noreferrer"><img src="' + o.pic_url + '"></img></a></div><div class="big-wrapper-taobao"><p style="line-height:30px"><a title="' + o.title + '" href="' + o.url + e.ut + '" target="_blank" rel="noreferrer">￥<em class="seller-taobao-price">' + o.price + '</em></a></p><p style="line-height:25px"><a class="a-link-limit-height" title="' + o.title + '" href="' + o.url + e.ut + '" target="_blank" rel="noreferrer">最近成交量:' + o.volume + ' 件</a></p><p style="line-height:25px"><a class="a-link-limit-height" title="' + o.title + '" href="' + o.url + e.ut + '" target="_blank" rel="noreferrer"><span class="taobao-seller"></span>' + o.nick + "</a></p></div>"), a >= 10) break
						}
						n.append('<div class="plt-review-link" style="margin-top:3px;"><a href="' + t.tmall.more_link + '" target="_blank">去天猫查看更多结果</a></div>')
					} else i("#plt-tmall-block").hide()
				} catch (r) {
					i("#plt-tmall-block").hide()
				}
				try {
					if (t.taobao.product.length > 0) {
						var s = i("#plt-taobao-block");
						s.show(), s.append("<h4>淘宝网在卖:</h4>");
						for (var a = 0; a < t.taobao.product.length; a++) {
							var o = t.taobao.product[a];
							s.append('<div class="plt-main-img-taobao"><a title="' + o.title + '" href="' + o.url + e.ut + '" target="_blank" rel="noreferrer"><img src="' + o.pic_url + '"></img></a></div><div class="big-wrapper-taobao"><p style="line-height:30px"><a title="' + o.title + '" href="' + o.url + e.ut + '" target="_blank" rel="noreferrer">￥<em class="seller-taobao-price">' + o.price + '</em></a></p><p style="line-height:25px"><a class="a-link-limit-height" title="' + o.title + '" href="' + o.url + e.ut + '" target="_blank" rel="noreferrer">最近成交量:' + o.volume + ' 件</a></p><p style="line-height:25px"><a class="a-link-limit-height" title="' + o.title + '" href="' + o.url + e.ut + '" target="_blank" rel="noreferrer"><span class="taobao-seller"></span>' + o.item_location + "</a></p></div>")
						}
						s.append('<div class="plt-review-link" style="margin-top:3px;"><a href="' + t.taobao.more_link + '" target="_blank">去淘宝查看更多结果</a></div>')
					} else i("#plt-taobao-block").hide()
				} catch (r) {
					i("#plt-taobao-block").hide()
				}
			}, t.exports.getEtaoInfo = function(t, i) {
				"chrome" != e.from_device || "taobao" != e.site && "tmall" != e.site && "ai-taobao" != e.site ? i(t) : ! function() {
					var a = !1,
						r = n(49);
					o.on(function(n) {
						if ("get_etao_info" === n.type) {
							try {
								var o = JSON.parse(n.value)
							} catch (s) {}
							if (!o) return;
							if (o.products)
								for (var l = 0; l < o.products.length; l++) {
									var d = {
										site_id: "123",
										url: o.products[l].url,
										mod: "onet",
										union: e.union.split("_")[1],
										dp_id: o.products[l].num_iid + "-123"
									};
									o.products[l].url = r.init(d)
								}
							if (t.taobao.product ? (t.taobao.product = o.products.length < 3 ? o.products.concat(t.taobao.product) : o.products, t.taobao.min_price = o.minprice, t.taobao.max_price = o.maxprice) : t.taobao = {
								min_price: o.minprice,
								max_price: o.maxprice,
								product: o.products,
								more_link: "http://s.taobao.com/search?q=" + t.search.keywords + "&pid=" + t.search.union
							}, t.search.is_exact = 1, t.taobao.product = t.taobao.product.sort(function(t, e) {
								return Number(t.price) > Number(e.price) ? 1 : Number(t.price) == Number(e.price) ? 0 : -1
							}), a) return;
							a = !0, i(t)
						}
					}), setTimeout(function() {
						a || (a = !0, i(t))
					}, 2500)
				}()
			}
		}).call(e, n(1), n(12))
	},
	function(t, e, n) {
		(function(e, i) {
			"use strict";

			function a(t, e) {
				t && u.get(t).done(function(t) {
					t && e(t)
				})
			}

			function o(t) {
				for (var e = [], n = [], i = t.length, a = 0; i > a; a++) "taobao" == t[a].type && e.push(t[a]), "tmall" == t[a].type && n.push(t[a]);
				l(e), d(n)
			}

			function r(t, e) {
				if (t) {
					t = t.slice(0, e);
					var i = n(48),
						a = p.compile(i)({
							data: t
						});
					return a
				}
			}

			function s() {
				var t = h.get().cat_id;
				if (t) {
					if ("360buy" == e.site) var n = e.zhitongche + "/cgi/ad/jd:" + t;
					else var n = e.zhitongche + "/cgi/ad/" + t;
					return n
				}
			}

			function l(t) {
				var e = i("#gwdang-taobao-dp-detail .all-products li").length,
					n = parseInt((i(window).width() - 80) / 200);
				if (!(e > n || 0 == t.length))
					if (0 == e) {
						var a = i("#gwdang-taobao-dp").html();
						a = a.replace("淘宝", "淘宝推广"), i("#gwdang-taobao-dp").html(a), i("#gwdang-taobao-dp").show(), i(".taobao-icon").show(), i("#gwdang-taobao-dp-detail").append(p.compile(g)({
							remo: "淘宝暂无比价结果，为您推荐更多商品"
						})), i("#gwdang-taobao-dp-detail .all-products").append(r(t, 9))
					} else i("#gwdang-taobao-dp-detail .all-products").append(r(t, n - e)), i("#gwdang-taobao-dp-detail .recom-title a").text("查看全部比价结果")
			}

			function d(t) {
				var e = i("#gwdang-tmall-dp-detail .all-products li").length,
					n = parseInt((i(window).width() - 80) / 200);
				if (!(e > n || 0 == t.length))
					if (0 == e) {
						var a = i("#gwdang-tmall-dp").html();
						a = a.replace("天猫", "天猫推广"), i("#gwdang-tmall-dp").html(a), i("#gwdang-tmall-dp").show(), i(".tmall-icon").show(), i("#gwdang-tmall-dp-detail").append(p.compile(g)({
							remo: "天猫暂无比价结果，为您推荐更多商品"
						})), i("#gwdang-tmall-dp-detail .all-products").append(r(t, 9))
					} else i("#gwdang-tmall-dp-detail .all-products").append(r(t, n - e)), i("#gwdang-tmall-dp-detail .recom-title a").text("查看全部比价结果")
			}

			function c() {
				if ("360buy" != e.site && "taobao" != e.site && "tmall" != e.site) return !1;
				var t = parseInt((i(window).width() - 80) / 200),
					n = i("#gwdang-taobao-dp-detail .all-products li").length,
					a = i("#gwdang-tmall-dp-detail .all-products li").length;
				return n >= t && a >= t ? !1 : !0
			}
			var p = n(13),
				h = n(14),
				u = n(16),
				g = n(47);
			t.exports.init = function() {
				c() && a(s(), o)
			}
		}).call(e, n(1), n(12))
	},
	function(t, e) {
		t.exports = '<div class="recom-title">\r\n  <a href="javascript:">{{remo}}</a>\r\n</div>\r\n<div class="panel-wrap tuiguang">\r\n  <!-- <div class="pages">\r\n    第&nbsp;\r\n    <span class="current-page">1</span>\r\n    &nbsp;页，共&nbsp;\r\n    <span class="page-num">1</span>\r\n    &nbsp;页\r\n  </div>\r\n  <div class="left-page">\r\n    <a title="上一页" target="_self" href="javascript:"></a>\r\n  </div> -->\r\n  <div class="all-products"></div>\r\n  <!-- <div class="right-page">\r\n    <a title="下一页" target="_self" href="javascript:"></a>\r\n  </div> -->\r\n</div>\r\n<div class="panel-shadow"></div>'
	},
	function(t, e) {
		t.exports = '<ul id="ad_item_list">\r\n  {{each data}}\r\n    <li>\r\n      <a class="tuiguang_link" title="推广链接" href="http://gwdang.com" target="_blank"></a>\r\n      <a href="{{$value.url}}" target="_blank" title="{{$value.title}}" class="small-img">\r\n        <img src="{{$value.img}}">\r\n      </a>\r\n        <span class="gwd-price">¥{{$value.dp_price/100}}</span>\r\n      <p class="dp">\r\n          <span>月成交记录{{$value.quanity}}件</span>\r\n        <br>\r\n        <a href="{{$value.shop_url}}" target="_blank" title="{{$value.shop_name}}">\r\n          <span class="store">{{$value.shop_name}}</span>\r\n        </a>\r\n        <a href="{{$value.url}}" target="_blank" title="{{$value.title}}">\r\n          <span class="gwd_title">{{$value.title}}</span>\r\n        </a>\r\n      </p>\r\n      \r\n    </li>\r\n  {{/each}}\r\n  <style type="text/css">\r\n    #ad_item_list{\r\n      display: inline-block;\r\n      float: left;\r\n    }\r\n    #ad_item_list li{\r\n      position: relative;\r\n    }\r\n    #gwdang-taobao-dp-detail .store {\r\n      font-weight: 400;\r\n    }\r\n    #gwdang-tmall-dp-detail .store {\r\n      font-weight: 700;\r\n    }\r\n    #ad_item_list img{\r\n      width: 90px;\r\n      height: 90px;\r\n      _margin:0 0 0 45px;\r\n    }\r\n    #gwdang-taobao-dp-detail .all-products ul{\r\n      display: inline-block;\r\n      float: left;\r\n    }\r\n    #gwdang-tmall-dp-detail .all-products ul{\r\n      display: inline-block;\r\n      float: left;\r\n    }\r\n    #ad_item_list .tuiguang_link {\r\n      position: absolute;\r\n      display: inline-block;\r\n      width: 20px;\r\n      height: 12px;\r\n      top: 0px;\r\n      left: 44px;\r\n      background: url("https://s1.gwdang.com/images/tuiguang_3.png") 1px 0;\r\n    }\r\n    #ad_item_list .tuiguang_link:hover{\r\n      background: url("https://s1.gwdang.com/images/tuiguang_4.png") 0 0;\r\n    }\r\n    .gwdang-main .panel-wrap.tuiguang .left-page{\r\n      left: 5px;\r\n    }\r\n    .gwdang-main .panel-wrap.tuiguang .all-products{\r\n      left: 35px;\r\n    }\r\n    #gwdang-notifier .taobao-compare .recom-title{\r\n      position: absolute;\r\n      left: 35px;\r\n      top: 5px;\r\n      z-index: 9999999999;\r\n    }\r\n    #gwdang-notifier .recom-title a{\r\n      font-weight: bold;\r\n    }\r\n    .fixed{\r\n      line-height: 36px;\r\n    }\r\n  </style>\r\n</ul>'
	},
	function(t, e) {
		"use strict";
		t.exports.init = function(t) {
			return "object" == typeof t ? t.is_mobile ? "http://m.gwdang.com/union/go/?site_id=" + t.site_id + "&target_url=" + encodeURIComponent(t.url) + "&union=" + t.union + "&column=" + t.mod + "-" + t.dp_id : "http://u.gwdang.com/union/go/?site_id=" + t.site_id + "&target_url=" + encodeURIComponent(t.url) + "&union=" + t.union + "&column=" + t.mod + "-" + t.dp_id : void 0
		}
	},
	function(t, e, n) {
		var i;
		(function(a) {
			"use strict";
			i = function() {
				function t(t) {
					function e() {
						var e = t.b2c.store.length;
						t.b2c.store.length > 6 && t.b2c.store.splice(6, t.b2c.store.length - 1);
						for (var n = 0; n < t.b2c.store.length; n++) t.b2c.store[n].promo.length > 3 && t.b2c.store[n].promo.splice(3, t.b2c.store[n].promo.length - 1);
						return e
					}
					r("#gwdang-main-contents").append(r("<a>", {
						href: "javascript:",
						id: "gwdang-b2c-dp",
						target: "_self",
						"class": "gwdang-tab"
					}).append(r("<span>", {
						"class": "b2c-icon"
					})).append("商城").append(r("<span>", {
						"class": "lowest gwd-price"
					}).append("&yen;" + t.b2c.min_price)));
					var n = e();
					if (r("#gwdang-main").append(l.compile(d)({
						data: t,
						len: n
					})), r("#b2c-prev-page").click(function() {
						a.change_page("b2c", -1)
					}), r("#gwdang-b2c-dp-detail li img.store").on("error", function() {
						r(this).attr("src", a.c_server + "/favicon.ico")
					}), r("#gwdang-b2c-dp-detail .panel-wrap").append(r("<div>", {
						"class": "all-products"
					}).append(r("<ul>", {
						id: "b2c-item-list"
					}))), t.b2c.product.length > 0)
						for (var i = 0; i < t.b2c.product.length; i++) {
							var o = t.b2c.product[i],
								s = o.rev_cnt ? o.rev_cnt : 0,
								c = r("<li>", {
									id: "b2c-prod-item-" + i
								});
							if (c.append(r("<a>", {
								id: "img-" + o.dp_id,
								title: o.title,
								target: "_blank",
								"class": "small-img",
								href: o.url
							}).append(r("<img>", {
								src: a.server + "/template/aug/images/new/120.gif",
								"data-original": o.img_url,
								id: "dp-image-small-" + o.dp_id,
								d_width: "90",
								d_height: "90",
								"class": "gwdang-lazy"
							}))), c.append(o.more > 1 ? r("<span>", {
								"class": "gwd-price"
							}).append(r("<a>", {
								target: "_blank",
								style: "color:#E52600",
								title: o.title,
								href: o.url
							}).html("&yen;" + o.price)).append(r("<a>", {
								target: "_blank",
								title: o.title,
								href: a.c_server + "/dp" + o.dp_id + "/where_buy/?from=browser#tabs"
							}).append(r("<span>", {
								"class": "more"
							}).text("更多(" + o.more + ")"))) : r("<span>", {
								"class": "gwd-price"
							}).append(r("<a>", {
								target: "_blank",
								style: "color:#E52600",
								title: o.title,
								href: o.url
							}).html("&yen;" + o.price))), c.append(r("<p>", {
								"class": "dp"
							}).append(r("<a>", {
								target: "_blank",
								title: o.title,
								href: o.url
							}).append(r("<span>", {
								"class": "store"
							}).text(o.site_name))).append(r("<span>", {
								id: o.dp_id + "_promotion"
							})).append(r("<br>")).append(r("<a>", {
								target: "_blank",
								title: o.title,
								href: o.url
							}).append(r("<span>", {
								"class": "fees"
							}).text(0 == s ? o.fee : "评论数:" + s))).append(r("<a>", {
								target: "_blank",
								title: o.title,
								href: o.url
							}).append(r("<span>", {
								"class": "gwd_title"
							}).text(o.title)))), c.appendTo("#b2c-item-list"), o.promo && o.promo.length > 0)
								for (var p = 0, h = o.promo.length; 3 > p && h > p; p++) {
									var u = o.promo[p];
									r("#" + o.dp_id + "_promotion").append(r("<a>", {
										"class": "promo_icon promo_icon_" + u.type,
										title: u.desc,
										href: o.url,
										target: "_blank"
									}))
								}
						}
					r("#gwdang-b2c-dp-detail .panel-wrap").append(r("<div>", {
						"class": "right-page"
					}).append(r("<a>", {
						id: "b2c-next-page",
						title: "下一页",
						target: "_self",
						href: "javascript:"
					}).click(function() {
						a.change_page("b2c", 1)
					}))), r("#gwdang-b2c-dp-detail").append(r("<div>", {
						"class": "panel-shadow"
					}))
				}

				function e(t) {
					r("#gwdang-main-contents").append(r("<a>", {
						href: "javascript:",
						id: "gwdang-b2c_fuzzy-dp",
						target: "_self",
						"class": "gwdang-tab"
					}).append(r("<span>", {
						"class": "b2c-icon"
					})).append("商城相似款").append(r("<span>", {
						"class": "lowest gwd-price"
					}).html("&yen;" + t.b2c_fuzzy.min_price))), r("#gwdang-main").append(r("<div>", {
						"class": "panel b2c_fuzzy",
						id: "gwdang-b2c_fuzzy-dp-detail",
						style: "display:none;"
					})), r("#gwdang-b2c_fuzzy-dp-detail").append(r("<div>", {
						"class": "panel-wrap"
					}).append(r("<div>", {
						"class": "pages"
					}).append("第 ").append(r("<span>", {
						"class": "current-page",
						id: "b2c_fuzzy-current-page"
					}).text("1")).append(" 页，共 ").append(r("<span>", {
						"class": "page-num",
						id: "b2c_fuzzy-page-num"
					}).text("1")).append(" 页")).append(r("<div>", {
						"class": "left-page",
						style: "left:10px;"
					}).append(r("<a>", {
						id: "b2c_fuzzy-prev-page",
						target: "_self",
						title: "上一页",
						href: "javascript:"
					}).click(function() {
						a.change_page("b2c_fuzzy", -1)
					})))), r("#gwdang-b2c_fuzzy-dp-detail .panel-wrap").append(r("<div>", {
						"class": "all-products",
						style: "left:35px;"
					}).append(r("<ul>", {
						id: "b2c_fuzzy-item-list"
					})));
					for (var e = 0; e < t.b2c_fuzzy.product.length; e++) {
						var n = t.b2c_fuzzy.product[e],
							i = n.rev_cnt ? n.rev_cnt : 0,
							o = r("<li>", {
								id: "b2c_fuzzy-prod-item-" + e
							}).append(r("<a>", {
								id: "img-" + n.dp_id,
								title: n.title,
								target: "_blank",
								"class": "small-img",
								href: n.url
							}).append(r("<img>", {
								src: a.s_server + "/template/aug/images/new/120.gif",
								"data-original": n.img_url,
								id: "fuzzy-image-small-" + n.dp_id,
								d_width: "90",
								d_height: "90",
								"class": "gwdang-lazy"
							}))).append(r("<span>", {
								"class": "gwd-price"
							}).append(r("<a>", {
								target: "_blank",
								style: "color:#E52600",
								title: n.title,
								href: n.url
							}).html("&yen;" + n.price))).append(r("<p>", {
								"class": "dp"
							}).append(r("<a>", {
								target: "_blank",
								title: n.title,
								href: n.url
							}).append(r("<span>", {
								"class": "store"
							}).text(n.site_name))).append(r("<span>", {
								id: n.dp_id + "_promotion"
							})).append(r("<br>")).append(r("<a>", {
								target: "_blank",
								title: n.title,
								href: n.url,
								style: "" == n.fee ? "display:none" : ""
							}).append(r("<span>", {
								"class": "fees"
							}).text(0 == i ? n.fee : "评论数:" + i))).append(r("<a>", {
								target: "_blank",
								title: n.title,
								href: n.url
							}).append(r("<span>", {
								"class": "gwd_title"
							}).text(n.title))));
						if (o.appendTo("#b2c_fuzzy-item-list"), n.promo && n.promo.length > 0)
							for (var s = 0, l = n.promo.length; 3 > s && l > s; s++) {
								var d = n.promo[s];
								r("#" + n.dp_id + "_promotion").append(r("<a>", {
									"class": "promo_icon_" + d.type,
									title: d.desc,
									href: n.url
								}))
							}
					}
					r("#gwdang-b2c_fuzzy-dp-detail .panel-wrap").append(r("<div>", {
						"class": "right-page"
					}).append(r("<a>", {
						id: "b2c_fuzzy-next-page",
						title: "下一页",
						target: "_self",
						href: "javascript:"
					}).click(function() {
						a.change_page("b2c_fuzzy", 1)
					}))), r("#gwdang-b2c_fuzzy-dp-detail").append('<div class="panel-shadow"></div>')
				}

				function i(t) {
					var e = a.getFixedShowProductNum();
					if (t.b2c.store.length > 0) {
						r("#gwd-compare").html("");
						try {
							for (var n = 0; n < t.b2c.store.length; n++) {
								var i = t.b2c.store[n],
									o = i.product[0],
									s = parseInt(i.product.length),
									l = s % e == 0 ? parseInt(s / e) : parseInt(s / e) + 1,
									d = r("<li>");
								d.append(r("<span>", {
									"class": "gwd-compare-item",
									href: o.url,
									target: "_blank"
								}).append(r("<p>", {
									"class": "gwd-price"
								}).html("&yen;" + o.price)).append(r("<p>", {
									"class": "gwd-store"
								}).text(o.site_name)));
								var c = r("<div>", {
									"class": "gwd-compare-item-detail re-gwd-compare-item-detail gwd-compare-item-detail-fixed",
									style: "display:none;"
								});
								c.append(r("<p>", {
									"class": "gwd-compare-item-detail-title gwd-height-auto gwd-compare-item-detail-title-fixed"
								}).append(r("<span>", {
									"class": "gwd-compare-item-detail-title-desc"
								}).text(o.site_name + "：" + i.fee)));
								for (var p = r("<ul>", {
									"class": "gwd-item-list"
								}), h = 0; s > h; h++) {
									var u = i.product[h],
										g = u.rev_cnt ? u.rev_cnt : 0,
										m = "";
									if (u.promo && u.promo.length > 0)
										for (var f = 0, w = u.promo.length; e > f && w > f; f++) m += '<span class="gwd-bg promo_icon promo_icon_' + u.promo[f].type + '" title="' + u.promo[f].desc + '">&nbsp</span>';
									p.append(r("<li>", {
										"class": "gwd-list-item " + (h % e == e - 1 || h == s - 1 ? "gwd-last" : ""),
										style: "display: " + (h >= e ? "none" : "block")
									}).append(r("<a>", {
										"class": "gwd-pic",
										href: u.url,
										target: "_blank"
									}).append(r("<img>", {
										src: a.s_server + "/images/dp_default.jpg",
										"data-original": u.img_url,
										title: u.title
									}))).append(r("<a>", {
										"class": "gwd-product-title",
										href: u.url,
										target: "_blank",
										title: u.title
									}).append(r("<div>").text(u.title))).append(r("<div>").append(r("<a>", {
										"class": "gwd-price",
										href: u.url,
										target: "_blank"
									}).html("&yen;" + u.price).append(m))).append(r("<div>", {
										"class": "gwd_rev_cnt"
									}).append(r("<a>", {
										"class": "gwd_product_comment_amount",
										href: u.url,
										target: "_blank",
										title: "商品评论数"
									}).append(r("<span>").text(0 != g ? "评论数:" + u.rev_cnt : "")))))
								}
								var _ = r("<div>", {
									"class": "gwd-b2c-PageView gwd-b2c-PageView-fixed"
								});
								if (_.append(r("<p>", {
									"class": "gwd-compare-item-detail-title",
									style: "height:auto;"
								}).append(r("<span>", {
									style: "float:none;padding-left:10px;",
									"class": "gwd-compare-item-detail-pages"
								}).append(r("<em>", {
									id: "page-now-" + n,
									"class": "page-now"
								}).text("1")).append("/").append(r("<em>", {
									id: "page-total-" + n,
									"class": "page-total"
								}).text("1")))), c.append(r("<div>", {
									"class": "gwd-compare-prev-page gwd-left"
								}).append(r("<div>", {
									"class": "gwd-bg page-arrow"
								}))).append(p).append(r("<div>", {
									"class": "gwd-compare-next-page gwd-right"
								}).append(r("<div>", {
									"class": "gwd-bg page-arrow"
								}))).append(_), d.append(c), 1 == l) {
									d.find(".gwd-compare-prev-page").hide(), d.find(".gwd-compare-next-page").hide(), d.find(".gwd-b2c-PageView-fixed").hide(), d.attr("pages", 1), d.attr("len", s);
									var v = 200 * s;
									d.children("div.gwd-compare-item-detail-fixed").css("width", v + 2)
								} else d.children("div.gwd-compare-item-detail-fixed").css("width", a.width - 2);
								r("#gwd-compare").append(d), r("#page-total-" + n).text(l)
							}
						} catch (b) {
							if (a.debug) throw b
						}
					}
					r("#gwd-compare").show()
				}

				function o(t) {
					var e = {},
						n = t.product;
					for (var i in n)
						if ("1" == n[i].more) {
							var a = n[i].all;
							for (var o in a) {
								var r = a[o].site_name;
								null == e[r] && (e[r] = []), e[r].push(a[o])
							}
						} else {
							var r = n[i].site_name;
							null == e[r] && (e[r] = []), e[r].push(n[i])
						}
					var s = {
						store: []
					};
					for (var l in e)
						if ("undefined" != typeof e[l][0].fee) {
							var d = {
								product: e[l],
								fee: e[l][0].fee
							};
							s.store.push(d)
						}
					return s
				}
				var r = n(12),
					s = {},
					l = n(13),
					d = n(51);
				return s.init = function(n, s) {
					"bottom" == s ? (n.b2c && n.b2c.min_price ? (i(n), a.setPageArgs("gwd-compare", a.getFixedShowProductNum()), this.setBottomViewOffset()) : n.b2c_fuzzy && (n.b2c = o(n.b2c_fuzzy), i(n), a.setPageArgs("gwd-compare", a.getFixedShowProductNum()), this.setBottomViewOffset(), r(".gwd-bi").addClass("gwd-bi-bg")), a.circleNotice(n.quan, n.promotion)) : n.b2c && n.b2c.min_price ? t(n) : n.b2c_fuzzy && e(n)
				}, s.setBottomViewOffset = function() {
					r("ul.gwd-item-list").each(function() {
						var t = r(this).parent().parent().eq(0);
						if ("1" == t.attr("pages")) {
							var e = t.offset().left,
								n = t.width(),
								i = 200 * parseInt(t.attr("len")),
								o = e - (i / 2 - n / 2);
							0 > o && (o = 0);
							var s = a.width - o;
							a.IE6 ? (o = n / 2 - i / 2, 0 > o + e && (o = -e), t.children("div.gwd-compare-item-detail-fixed").css("position", "absolute").css("left", o), t.find(".gwd-compare-item-detail-title-fixed").css("left", 0)) : s > i ? (t.children("div.gwd-compare-item-detail-fixed").css("left", o), t.find(".gwd-compare-item-detail-title-fixed").css("left", o)) : (t.children("div.gwd-compare-item-detail-fixed").css("left", a.width - i), t.find(".gwd-compare-item-detail-title-fixed").css("left", a.width - i))
						} else if (a.IE6) {
							var e = t.offset().left,
								o = 0 - e;
							t.children("div.gwd-compare-item-detail-fixed").css("position", "absolute").css("left", o), t.find(".gwd-compare-item-detail-title-fixed").css("left", 0)
						}
					})
				}, s
			}.call(e, n, e, t), !(void 0 !== i && (t.exports = i))
		}).call(e, n(1))
	},
	function(t, e) {
		t.exports = '<div id="gwdang-b2c-dp-detail" class="panel gwd_compare">\r\n  <div class="panel-wrap">\r\n    <div class="pages">\r\n      第&nbsp;\r\n      <span class="current-page" id="b2c-current-page">1</span>\r\n      &nbsp;页，共\r\n      <span class="page-num" id="b2c-page-num">4</span>\r\n      &nbsp;页\r\n    </div>\r\n    <div class="left-page">\r\n      <a id="b2c-prev-page" target="_self" title="上一页" href="javascript:"></a>\r\n    </div>\r\n    <ul class="buy-list">\r\n      <li><b>正品商城在卖：</b></li>\r\n      {{each data.b2c.store}}\r\n      <li>\r\n        <img class="store" src="{{$value.icon_url}}">\r\n        <a href="{{$value.url}}" target="_blank">\r\n          <span class="gwd_title">{{$value.site_name}}</span>\r\n        </a>\r\n        {{if $value.more>1}}\r\n        <a href="https://www.gwdang.com/dp{{$value.dp_id}}/where_buy/?from=browser#tabs">\r\n          <span class="more">({{$value.more}})款</span>\r\n        </a>\r\n        {{/if}}\r\n        {{if $value.promo}}\r\n          {{each $value.promo as item}}\r\n            <a class="promo_icon promo_icon_{{item.type}}" title="{{item.desc}}" url="{{$value.url}}"></a>\r\n          {{/each}}\r\n        {{/if}}\r\n        <a href="{{$value.url}}" target="_blank">\r\n          <span class="price">&yen;{{$value.price}}</span>\r\n        </a>\r\n      </li>\r\n      {{/each}}\r\n      <li>\r\n        <a href="https://www.gwdang.com/dp{{data.now.dp_id}}/where_buy/?from=browser&m=b2c#tabs"target="_blank">\r\n          <span class="show-all">查看全部商家({{len}})</span>\r\n        </a>\r\n      </li>\r\n    </ul>\r\n    <div class="all-products"></div>\r\n    <div class="right-page">\r\n      <a id="b2c-next-page" title="下一页" target="_self" href="javascript:"></a>\r\n    </div>\r\n  </div>\r\n  <div class="panel-shadow"></div>\r\n</div>'
	},
	function(t, e, n) {
		(function(e) {
			"use strict";
			t.exports = function() {
				var t = document.location.href,
					n = t.indexOf("?") > -1 ? "&pagereload=bhack" : "?pagereload=bhack",
					i = t + n;
				document.location.href.match(/m\.suning\.com\/product\/[0-9]+/) && -1 == t.indexOf("pagereload=bhack") && (e.chrome_extension ? setTimeout(function() {
					window.location.href = i
				}, 300) : window.location.href = i)
			}
		}).call(e, n(1))
	},
	function(t, e, n) {
		(function(e, n) {
			"use strict";

			function i(t, e) {
				if (0 != e.indexOf("http")) {
					if (0 == e.indexOf("javascript")) t = "", e = "";
					else if (0 == e.indexOf("//")) t = "http:";
					else if (0 == e.indexOf("/")) t = t.replace(/(http:\/\/[^\/]+).*/gi, "$1");
					else {
						var n = t.substr(0, t.indexOf("//") + 2);
						t = t.substr(t.indexOf("//") + 2);
						var i = t.split("/"),
							a = i.length - 1;
						if (0 == e.indexOf("./")) e = e.substr(2);
						else if (0 == e.indexOf("../"))
							for (; 0 == e.indexOf("../");) e = e.substr(3), a--;
						t = n;
						for (var o = 0; a > o; o++) t += i[o] + "/"
					}
					e = t + e
				}
				return e
			}

			function a() {
				var t = e.site;
				return "yhd" == e.site && (t = "yihaodian"), "vip" == e.site && (t = "vipshop"), t
			}
			var o = e.go_union ? e.go_union : "http://u.gwdang.com/union/go",
				r = {
					dangdang: 2,
					m18: 10,
					sephoracps: 12,
					lefeng: 13,
					s: 14,
					moonbasa: 17,
					keede: 18,
					vancl: 19,
					letao: 22,
					suning: 25,
					coo8: 26,
					gome: 28,
					"gome-rushbuy": 28,
					yihaodian: 31,
					"yihaodian-tuan": 31,
					womai: 32,
					leyou: 33,
					shopin: 34,
					xiu: 35,
					mbaobao: 36,
					chunshuitang: 40,
					x: 41,
					no5: 43,
					"360kxr": 50,
					m6go: 51,
					"99read": 59,
					"china-pub": 60,
					efeihu: 63,
					yintai: 66,
					strawberrynet: 69,
					happigo: 72,
					tiantian: 84,
					jumei: 86,
					yougou: 93,
					111: 94,
					muyingzhijia: 98,
					banggo: 100,
					yesmywine: 101,
					jiuxian: 103,
					bookuu: 110,
					paixie: 122,
					s8: 123,
					homevv: 124,
					jxdyf: 125,
					sfbest: 126,
					benlai: 127,
					tootoo: 128,
					vipshop: 129,
					fclub: 130,
					ihush: 131,
					vmall: 134,
					apple: 136,
					miqi: 139,
					zhiwo: 140,
					j1: 141,
					wangjiu: 142,
					liebo: 144,
					esprit: 145,
					lamiu: 146,
					aimer: 147,
					kadang: 148,
					lizi: 149,
					metromall: 150,
					pba: 151,
					shangpin: 152,
					wbiao: 153,
					handuyishe: 154,
					ehaier: 155,
					secoo: 156,
					camel: 157,
					masamaso: 158,
					nop: 159,
					naruku: 160,
					gaojie: 161,
					zhenpin: 162,
					sportica: 163,
					xifuquan: 164,
					milier: 165,
					xiaomi: 167,
					lemall: 168,
					dianping: 171,
					ctrip: 173,
					yiguo: 174,
					yummy77: 175,
					fruitday: 178,
					jumeiglobal: 179,
					feiniu: 180,
					feifei: 181,
					zuipin: 182,
					yohobuy: 184,
					lvmama: 185,
					ikjtao: 188,
					mf910: 194,
					miyabaobei: 195,
					ule: 196,
					mingshengec: 197,
					wangfujing: 198,
					qunar: 200,
					"55tuan": 204,
					jinjianginns: 205,
					elong: 206,
					500: 209,
					supuy: 210,
					lv: 211,
					caipiao: 212,
					lining: 213,
					koolearn: 214,
					springtour: 215,
					228: 216,
					rrs: 217,
					coocaa: 218,
					lifevc: 220,
					niubia: 221,
					kzj365: 222,
					kaola: 223,
					ymatou: 224,
					metao: 225,
					kjt: 226,
					logitech: 227,
					ebay: 230,
					xiji: 232,
					nike: 233,
					"360kad": 234,
					lbxcn: 235,
					meici: 236,
					beibei: 237,
					vsigo: 252,
					daling: 267,
					sfht: 268,
					fengqu: 268,
					mei: 269,
					showjoy: 270,
					ocj: 271
				};
			t.exports = function() {
				var t = a();
				if (e.set_force) try {
					if (r[t] && n.inArray("" + r[t], e.force) >= 0) return;
					n("body").delegate("a", "mouseenter mouseleave mouseover", function(t) {
						var e = n(this).attr("ct");
						"mouseover" != t.type && e && n(this).attr("href", e).removeAttr("ct")
					}), "s8" != t ? n("body").delegate("a", "click", function(a) {
						if (!(n.inArray("" + r[t], e.force) >= 0) && r[t]) {
							var s = n(this).attr("href");
							if (!s) return;
							s = i(e.href, s), 0 == s.indexOf("http") && s.indexOf("gwdang") < 0 && (s = o + "?site_id=" + r[t] + "&target_url=" + encodeURIComponent(s) + "&from=ct&union=" + e.union.replace("union_", ""), n(this).attr("ct", n(this).attr("href")), n(this).attr("href", s), n.ajax({
								url: e.server + "/brwext/permanent_id/",
								dataType: "jsonp",
								jsonp: "callback",
								async: !0,
								data: "version=2&op=set_force&type=" + r[t],
								success: function(t) {
									e.force = t.force
								},
								error: function(t, e, n) {}
							}))
						}
					}) : n("body").delegate("a", "click", function(a) {
						if (!(n.inArray("" + r[t], e.force) >= 0) && r[t]) {
							var s = n(this).attr("href");
							s = i(e.href, s), 0 == s.indexOf("http") && s.indexOf("gwdang") < 0 && (s.indexOf("item") > 0 || s.indexOf("detail") > 0) && (s = o + "?site_id=" + r[t] + "&target_url=" + encodeURIComponent(s) + "&from=ct", n(this).attr("ct", n(this).attr("href")), n(this).attr("href", s), n.ajax({
								url: e.server + "/brwext/permanent_id/",
								dataType: "jsonp",
								jsonp: "callback",
								async: !0,
								data: "version=2&op=set_force&type=" + r[t],
								success: function(t) {
									e.force = t.force
								},
								error: function(t, e, n) {}
							}))
						}
					})
				} catch (s) {
					if (e.debug) throw s
				}
			}
		}).call(e, n(1), n(12))
	},
	function(t, e, n) {
		(function(e, i) {
			"use strict";
			var a = n(55),
				o = n(56),
				r = n(45),
				s = n(57),
				l = n(59),
				d = n(65),
				c = n(66),
				p = n(68),
				h = n(35),
				u = n(74),
				g = n(16),
				m = function() {
					e("#gwdang-feedback-detail").hide(), e("#gwdang-feedback-input").show(), e("#gwdang-feedback-success").hide(), e("#gwdang-feedback-clean").hide()
				},
				f = function(t) {
					t = "undefined" != typeof t ? t : "";
					var n;
					n = "" != t ? t : e("#gwdang-feedback-content").val(), n = n.replace(/[\ ]+/gi, "");
					var a = e("#gwdang-feedback-nick").val();
					a = a.replace(/[\ ]+/gi, ""), "" == n ? (e(".gwdang-feedback-error").hide(), e("#gwdang-feedback-error-0").show()) : g.get(i.server + "/brwext/feedback?nick=" + encodeURIComponent(a) + "&content=" + encodeURIComponent(n) + "&format=brwext_jsonp").done(function() {
						e(".gwdang-feedback-error").hide(), e("#gwdang-feedback-input").hide(), e("#gwdang-feedback-nick").val(""), e("#gwdang-feedback-content").val(""), e("#gwdang-feedback-success").show(), e("#gwdang-feedback-clean").show()
					})
				};
			t.exports.display_search_bar_right = function(t) {
				u.init(), e("#plt-notifier").html(""), e("#plt-notifier").append('<span id="y" style="display:none"></span><div id="plt-search-mini" class="plt-search-mini"><div id="plt-icon" class="plt-icon" title="点击可展开或收起，拖动可改变位置。">购物党</div><div id="plt-search-bar" class="plt-search-bar"><div style="padding:14px 5px"><a href="' + t.promotion.jump_url + '"  target="_blank" class="show-more">' + t.promotion.info + "</a></div></div></div>");
				var n;
				i.IE6 ? n = document.documentElement : window.ActiveXObject && "amazon" == i.site && (n = document.body), (i.IE6 || "amazon" == i.site && window.ActiveXObject) && (e("#plt-search-mini").css("top", n.scrollTop), e("#plt-notifier").css("top", n.scrollTop), e(window).scroll(function() {
					"amazon" == i.site && window.ActiveXObject ? (e("#plt-notifier").css("top", document.body.scrollTop - i.scrollTop + parseInt(i.position) + "px"),
						e("#plt-search-mini").css("top", document.body.scrollTop - i.scrollTop + parseInt(i.position) + "px")) : (e("#plt-notifier").css("top", document.documentElement.scrollTop - i.scrollTop + "px"), e("#plt-search-mini").css("top", document.documentElement.scrollTop - i.scrollTop + "px"))
				})), e("#plt-icon").click(function() {
					"none" == e("#plt-search-bar").css("display") ? (e("#plt-search-bar").css("display", "block"), (i.IE6 || "amazon" == i.site && window.ActiveXObject) && e("#plt-search-mini").css("width", "185"), i.is_open = 1) : (e("#plt-search-bar").css("display", "none"), (i.IE6 || "amazon" == i.site && window.ActiveXObject) && e("#plt-search-mini").css("width", "62"), i.is_open = 0), g.get(i.server + "/brwext/permanent_id?version=2&op=set_is_open&is_open=" + i.is_open).done(function(t) {
						i.p_id = t.p_id, i.is_open = t.is_open
					})
				}), 1 == i.is_open ? (e("#plt-search-bar").css("display", "block"), (i.IE6 || i.href.indexOf("amazon") > 0 && window.ActiveXObject) && e("#plt-search-mini").css("width", "185")) : (e("#plt-search-bar").css("display", "none"), (i.IE6 || i.href.indexOf("amazon") > 0 && window.ActiveXObject) && e("#plt-search-mini").css("width", "62"));
				var o = document.getElementById("plt-search-mini"),
					r = i.height - 46,
					s = new a({
						target: o,
						area: [0, r],
						callback: function(t) {
							"number" == typeof t.moveY && i.dragY && (document.getElementById("y").innerHTML = "y:" + t.moveY)
						}
					});
				s.dragY(), e("#plt-search-mini").animate({
					right: "5px"
				}, 2e3, "swing", function() {
					e(this).animate({
						right: "0"
					}, 100)
				})
			}, t.exports.display_dp_main_bar_right = function(t) {
				if (e("#plt-notifier").empty(), i.IE6 && o.bindBgiframe(), 0 === t.b2c.length && t.b2c_fuzzy && 0 !== t.b2c_fuzzy.length && (t.b2c = t.b2c_fuzzy, t.b2c.fake = !0, t.b2c.store = t.b2c_fuzzy.product), i.collectInfo = t.collectInfo, e("#plt-notifier").append('<span id="y" style="display:none"></span>'), "undefined" != typeof t.b2c.min_price) {
					if (e("#plt-notifier").append('<span id="where_buy" style="display:none">' + t.b2c.store.length + "</span>"), e("#plt-notifier").append('<div id="plt-mini" class="plt-mini" title="点击可展开，拖动可改变位置"></div>'), e("#plt-mini").append('<div id="plt-icon" class="plt-icon">购物党</div>'), e("#plt-mini").append('<div id="plt-mini-bar" class="plt-mini-bar"></div>'), parseFloat(t.now.min_price) > 0 ? e("#plt-mini-bar").append('<div class="price">￥<span class="price_num">' + t.now.min_price + "</span>&nbsp;起&nbsp;</div>") : t.b2c_fuzzy && parseFloat(t.b2c_fuzzy.min_price) > 0 && e("#plt-mini-bar").append('<div class="price">￥<span class="price_num">' + t.b2c_fuzzy.min_price + "</span>&nbsp;起&nbsp;</div>"), "undefined" != typeof t.now.score && parseFloat(t.now.score) > 0) {
						for (var u = '<span class="star_small">', w = 0, _ = t.now.score; _ >= 2 && 5 > w;) u += '<img src="' + i.server + '/template/aug/images/star_red.gif"/>', w++, _ -= 2;
						for (; _ >= 1 && 5 > w;) u += '<img src="' + i.server + '/template/aug/images/star_halfgray.gif"/>', w++, _ -= 1;
						for (; 5 > w;) u += '<img src="' + i.server + '/template/aug/images/star_gray.gif"/>', w++;
						u += "</span>", e("#plt-mini-bar").append('<div class="rating"><p class="rating-num">' + t.now.score + "分</p><p>" + u + "</p></div>")
					}
					e("#plt-mini").append('<div class="plt-open"><span></span></div>'), e("#plt-notifier").append('<div id="plt-main" class="plt-main"></div>'), e("#plt-main").append('<div id="plt-title"></div>'), e("#plt-title").append("<a href=\"javascript:\" target=\"_self\" onclick=\"javascript:var gwdang_share_to = document.getElementById('share_to'); if(gwdang_share_to.style.display=='none'){gwdang_share_to.style.display='block'}else{gwdang_share_to.style.display='none'}\">分享商品<b class=\"trig\"></b></a>"), e("#plt-title").append('<a id="plt-feedback" href="javascript:" target="_self">意见反馈<b class="trig"></b></a>'), e("#plt-title").append('<a id="plt-modify" href="javascript:" target="_self">设置<b class="trig"></b></a>'), e("#plt-main").append('<div id="plt-close" class="plt-close" title="收起扩展面板"><span></span></div>'), e("#plt-main").append('<div id="plt-wrapper"></div>'), e("#plt-wrapper").append('<div id="plt-accordion"></div>'), e("#plt-accordion").append('<div class="plt-acc-div plt-overview" id="plt-acc-div"></div>');
					try {
						e("#plt-acc-div").append('<div class="plt-block share_to" id="share_to" style="display:none"><a class="sina" id="gwdang_sina" target="_self" ahref="' + t.share_good.sina + '" title="分享到新浪微博" onclick="' + t.share.win + '" href="javascript:" ></a><a class="qq" id="gwdang_qq" target="_self" ahref="' + t.share_good.qq + '" title="分享到腾讯微博" onclick="' + t.share.win + '" href="javascript:" ></a><a class="qzone" id="gwdang_qzone" target="_self" ahref="' + t.share_good.qzone + '" title="分享到QQ空间" onclick="' + t.share.win + '" href="javascript:" ></a><a class="renren" id="gwdang_renren" target="_self" ahref="' + t.share_good.renren + '" title="分享到人人网" onclick="' + t.share.win + '" href="javascript:"></a><a class="douban" id="gwdang_douban" target="_self" ahref="' + t.share_good.douban + '" title="分享到豆瓣" onclick="' + t.share.win + '" href="javascript:" ></a></div><div class="clear"></div>')
					} catch (v) {
						if (i.debug) throw v
					}
					if ("right" == i.style) var b = '<input type="radio" name="plt-modify-style[]" style="border:0" value="top"><label>新版(页面顶部)</label><br /><input type="radio" name="plt-modify-style[]" style="border:0" checked="true" value="right"><label>简洁版(页面右侧)</label>';
					else var b = '<input type="radio" name="plt-modify-style[]" style="border:0" checked="true" value="top"><label>新版(页面顶部)</label><br /><input type="radio" name="plt-modify-style[]" style="border:0" value="right"><label>简洁版(页面右侧)</label>';
					e("#plt-acc-div").append('<div class="plt-block" style="display:none" id="plt-modify-block"><h4>请选择样式设置：</h4>' + b + '<br />选择样式后将在下一个页面生效<br /><h4 id="plt-setting-success" style="display:none">设置成功。</h4></div>'), e("#plt-acc-div").append(e("<div>", {
						"class": "plt-block",
						style: "display:none",
						id: "gwdang-feedback"
					}).append(e("<p>", {
						"class": "gwd_title"
					}).text("用户反馈")).append(e("<div>", {
						id: "gwdang-feedback-input"
					}).append(e("<p>").append(e("<span>").text("反馈内容："))).append(e("<p>").append(e("<textarea>", {
						id: "gwdang-feedback-content",
						name: "gwdang-feedback-content",
						maxlength: "400"
					}))).append(e("<p>").append(e("<span>").text("邮箱或QQ：")).append(e("<input>", {
						id: "gwdang-feedback-nick",
						name: "gwdang-feedback-nick",
						value: ""
					}))).append(e("<p>").append(e("<a>", {
						href: "javascript:",
						target: "_self"
					}).append(e("<span>").text("提交反馈")).click(function() {
						f()
					})))).append(e("<p>").append(e("<span>", {
						id: "gwdang-feedback-success"
					}).text("非常感谢您的反馈，我们将尽快处理，努力改进我们的产品。如有需要，将与您联系沟通 :)")).append(e("<span", {
						id: "gwdang-feedback-error-0",
						"class": "gwdang-feedback-error"
					}).text("提交内容不能为空:(")).append(e("<span>", {
						id: "gwdang-feedback-error-1",
						"class": "gwdang-feedback-error"
					}).text("联系方式填写有误:(")).append(e("<span>", {
						id: "gwdang-feedback-error-2",
						"class": "gwdang-feedback-error"
					}).text("反馈提交失败了:("))).append(e("<p>", {
						id: "gwdang-feedback-clean"
					}).append(e("<a>", {
						href: "javascript:",
						target: "_self"
					}).append(e("<span>").text("确定")).click(function() {
						m()
					}))));
					var x = t.now.ctitle || t.now.title || t.keyword;
					if (e("#plt-acc-div").append('<div class="plt-block"><strong><a href="https://www.gwdang.com/dp' + t.now.dp_id + '/where_buy/?from=browser" target="_blank">' + x + "</a></strong></div>"), "1" != t.now.is_exact && e("#plt-acc-div").append('<div id="plt-more"><a href="' + t.now.more_link + '" target="_blank">查看全部匹配</a></div>'), t.b2c.store.length > 0) {
						if (!t.b2c.fake) try {
							var _ = "";
							_ = parseFloat(t.now.score) <= 0 ? "暂无评价" : u + '&nbsp;&nbsp;<span class="price">' + t.now.score + "</span>分", e("#plt-acc-div").append('<div class="plt-block"><div class="plt-main-img"><a href="https://www.gwdang.com/dp' + t.now.dp_id + '/where_buy/?from=browser" target="_blank"><img src="http://browser.gwdang.com/template/aug/images/new/120.gif" data-original="' + t.now.cimg_url + '" id="dp-image-small-' + t.now.cdp_id + '-" d_width="90" d_height="90" class="gwdang-lazy" /></a></div><div class="big-wrapper"><a href="https://www.gwdang.com/dp' + t.now.dp_id + '/where_buy/?from=browser" target="_blank" style="line-height:30px" >￥<span class="big-price" style="line-height:30px">' + t.now.min_price + '</span>起</a><p style="line-height:30px" >' + _ + '</p><p style="line-height:30px"><a title="收藏并获得降价提醒" href="https://www.gwdang.com/dp' + t.now.dp_id + '/?from=browser" target="_blank"><img class="price_down" src="' + i.server + '/template/aug/images/new/price_down_icon.png"><span class="price_down">降价时提醒我</span></a></p></div></div>')
						} catch (v) {
							if (i.debug) throw v
						}
						try {
							var y = "";
							"undefined" != typeof t.now.cdp_id && "" != t.now.cdp_id && (y = '<a href="https://www.gwdang.com/dp' + t.now.cdp_id + '/trend?from=browser#tabs" target="_blank" class="cart_btn"><img src="' + i.server + '/template/aug/images/extension/trend_btn.jpg" title="查看商品价格历史" /></a>'), e("#plt-acc-div").append('<div class="plt-block share_block">' + y + '<a href="https://www.gwdang.com/dp' + ("" != t.now.dp_id ? t.now.dp_id : t.now.cdp_id) + '/where_buy/?from=browser" target="_blank" class="share_btn"><img src="' + i.server + '/template/aug/images/extension/fav_btn.jpg" title="去购物党收藏此商品" /></a></div>')
						} catch (v) {
							if (i.debug) throw v
						}
						try {
							if (t.b2c.store.length > 0) {
								var k = e('<div class="plt-block"></div>');
								k.append("<h4>正品商城在卖:</h4>");
								for (var z = 0; z < t.b2c.product.length; z++) {
									var C = t.b2c.product[z],
										T = "";
									if ("1" != C.more && void 0 !== C.more && (T = '<a href="https://www.gwdang.com/dp' + C.dp_id + '/where_buy/?from=browser" target="_blank" title="去' + C.site_name + "(" + C.more + '款)"><span class="blue">(' + C.more + "款)</span></a>"), k.append('<div class="plt-main-img-taobao"><a title="' + C.title + '" href="' + C.url + '" target="_blank"><img src="http://browser.gwdang.com/template/aug/images/new/120.gif" data-original="' + C.img_url + '" id="dp-image-small-' + C.dp_id + '" d_width="90" d_height="90" class="gwdang-lazy" /></a></div><div class="big-wrapper-taobao"><p style="line-height:30px"><a title="' + C.title + '" href="' + C.url + '" target="_blank">￥<em class="seller-taobao-price">' + C.price + "</em></a>" + T + '</p><p style="line-height:25px"><p style="line-height:25px"><a class="a-link-limit-height gwd_b2c_name" title="' + C.title + '" href="' + C.url + '" target="_blank"><img src="' + C.icon_url + '" width="16" height="16" style="margin-right:5px;"/>' + C.site_name + "</a></p></div>"), z >= 10) break
								}
								k.append('<div class="plt-review-link" style="margin-top:3px;"><a href="https://www.gwdang.com/dp' + t.now.dp_id + '/where_buy/?from=browser" target="_blank">查看全部商家<span class="plt-review_cnt">(' + t.b2c.store.length + ")</span></a></div>"), k.append('<div class="plt-clear"></div>'), k.appendTo("#plt-acc-div")
							}
						} catch (v) {
							if (i.debug) throw v
						}
					}
					var S = e('<div class="plt-block" id="plt-tmall-block" style="display:none"></div>');
					S.appendTo("#plt-acc-div");
					var j = e('<div class="plt-block" id="plt-taobao-block" style="display:none"></div>');
					j.appendTo("#plt-acc-div");
					for (var I = "0-0", z = 0; z < t.b2c.store.length && 6 > z; z++) I += "," + t.b2c.store[z].dp_id;
					try {
						if ("undefined" != typeof t.now.score && parseFloat(t.now.score) > 0) {
							for (var _ = e('<div class="plt-block plt-review-sum"></div>'), P = '<table width="210" class="star_all">', z = 5; z > 0; z--) {
								var A = t.review.star_bar_num[z - 1],
									E = t.review.percent_num[z - 1];
								P += "<tr>", P += '<td width="40">' + z + '星</td><td><div class="star_proportion"><div class="star_proportion_img" style="width:' + 80 * parseFloat(E) + 'px"></div><div class="clear"></div></div></td><td>', P += '<a target="_blank" title="查看' + z + '星评论" href="https://www.gwdang.com/dp' + t.now.dp_id + "/reviews/?r_stars_cnt=" + z + '&from=browser&m=review#tabs">' + A + "人</a>", P += "</td></tr>"
							}
							P += "</table>", _.append('<div class="plt-review-sum"><div class="rating"><p class="rating-label">平均分</p><p class="rating-num">' + t.review.score + "</p><p>" + u + "</p></div>" + P + "</div>"), _.append('<div class="plt-clear"></div>'), _.append('<p class="plt-review-link"><a  href="https://www.gwdang.com/dp' + t.now.dp_id + '/?from=browser" target="_blank" title="去购物党查看全部评论">查看全部评论<span class="plt-review-cnt">(' + t.review.review_cnt + ")</span></a></p>"), _.append('<div class="plt-clear"></div>'), _.appendTo("#plt-acc-div")
						}
					} catch (v) {
						if (i.debug) throw v
					}
					try {
						if (t.review.good.length > 0 || t.review.bad.length > 0) {
							var L = e('<div class="feature-div plt-block"></div>'),
								O = e('<div class="feature"></div>');
							if (t.review.good.length > 0) {
								O.append("<h4>优点:</h4>");
								for (var N = '<table class="feature-list" cellspacing="0">', z = 0; z < t.review.good.length; z++) {
									var D = t.review.good[z];
									z % 2 == 0 && (N += "<tr>"), N += '<td class="feature-word"><a target="_blank" href="' + D.url + '" title="查看提到' + D.key + '的评论">' + D.key + '<span class="blue">(' + D.cnt + ")</span></a></td>", z % 2 == 1 && (N += "</tr>")
								}
								t.review.good.length % 2 == 0 && (N += "<td></td></tr>"), N += "</table>", O.append(N)
							}
							if (t.review.bad.length > 0) {
								O.append("<h4>缺点:</h4>");
								for (var M = '<table class="feature-list" cellspacing="0">', z = 0; z < t.review.bad.length; z++) {
									var q = t.review.bad[z];
									z % 2 == 0 && (M += "<tr>"), M += '<td class="feature-word"><a target="_blank" href="' + q.url + '" title="查看提到' + q.key + '的评论">' + q.key + '<span class="red">(' + q.cnt + ")</span></a></td>", z % 2 == 1 && (M += "</tr>")
								}
								t.review.bad.length % 2 == 0 && (M += "<td></td></tr>"), M += "</table>", O.append(M)
							}
							O.appendTo(L), L.appendTo("#plt-acc-div")
						}
					} catch (v) {
						if (i.debug) throw v
					}
					try {
						if (t.also.length > 0) {
							var B = e('<div class="plt-block"></div>');
							B.append("<h4>关注此商品的人也关注:</h4>");
							for (var z = 0; z < t.also.length && !(z > 5); z++) {
								var C = t.also[z];
								if (z % 2 == 0) var R = "left";
								else var R = "right";
								B.append('<div class="plt-recommend ' + R + '"><div class="plt-main-img" style="height:90px;overflow:hidden"><a href="' + C.url + '" title="' + C.title + '" target="_blank"><img src="http://browser.gwdang.com/template/aug/images/new/120.gif" data-original="' + C.img_url + '" id="dp-image-small-also-' + C.dp_id + '" d_width="90" d_height="90" class="gwdang-lazy" /></a></div><a class="gwd_title" style="width:100px;overflow:hidden;" href="' + C.url + '" target="_blank" title="' + C.title + '">' + C.title + '</a><a class="price" href="' + C.url + '" target="_blank" title="' + C.title + '" >￥<span>' + C.price + "</span></a></div>")
							}
							B.appendTo("#plt-acc-div")
						}
					} catch (v) {
						if (i.debug) throw v
					}
					e("#plt-acc-div").append('<div class="plt-clear"></div>'), e("#plt-acc-div").append('<div id="plt-footer" class="plt-block"><a href="https://www.gwdang.com/app/mobile/?from=browser" target="_blank">手机客户端</a>&nbsp;&nbsp;<a href="https://www.gwdang.com/app/extension/?from=browser" target="_blank">分享软件</a>&nbsp;&nbsp;<a href="http://blog.gwdang.com/?p=92&from=browser" target="_blank">反馈意见</a></div>')
				} else {
					e("#plt-notifier").append('<div id="plt-mini" class="plt-mini" title="点击可展开，拖动可改变位置" style="*width:210px;"></div>'), e("#plt-mini").append('<div id="plt-icon" class="plt-icon">购物党</div>'), e("#plt-mini").append('<div id="plt-mini-bar" class="plt-mini-bar"></div>'), e("#plt-mini-bar").append(t.tmall.length > 0 ? '<div class="price">￥<span class="price_num">' + t.tmall.min_price + "</span>&nbsp;起&nbsp;</div>" : t.taobao.length > 0 ? '<div class="price">￥<span class="price_num">' + t.taobao.min_price + "</span>&nbsp;起&nbsp;</div>" : '<div class="price" id="tbprice" style="display:none">￥<span class="price_num"></span>&nbsp;起&nbsp;</div>'), e("#plt-mini").append('<div class="plt-open"><span></span></div>'), e("#plt-notifier").append('<div id="plt-main" class="plt-main" style="_width:312px"></div>'), e("#plt-main").append('<div id="plt-title"></div>'), e("#plt-title").append("<a href=\"javascript:\" target=\"_self\" onclick=\"javascript:var gwdang_share_to = document.getElementById('share_to'); if(gwdang_share_to.style.display=='none'){gwdang_share_to.style.display='block'}else{gwdang_share_to.style.display='none'}\">分享商品<b class=\"trig\"></b></a>"), e("#plt-title").append('<a id="plt-feedback" href="javascript:" target="_self">意见反馈<b class="trig"></b></a>'), e("#plt-title").append('<a id="plt-modify" href="javascript:" target="_self">设置<b class="trig"></b></a>'), e("#plt-main").append('<div id="plt-close" class="plt-close" title="收起扩展面板"><span></span></div>'), e("#plt-main").append('<div id="plt-wrapper"><div id="plt-accordion"><div class="plt-acc-div plt-overview" id="plt-acc-div"></div></div></div>');
					try {
						e("#plt-acc-div").append('<div class="plt-block share_to" id="share_to" style="display:none"><a class="sina" id="gwdang_sina" target="_self" ahref="' + t.share_good.sina + '" title="分享到新浪微博" onclick="' + t.share.win + '" href="javascript:" ></a><a class="qq" id="gwdang_qq" target="_self" ahref="' + t.share_good.qq + '" title="分享到腾讯微博" onclick="' + t.share.win + '" href="javascript:" ></a><a class="qzone" id="gwdang_qzone" target="_self" ahref="' + t.share_good.qzone + '" title="分享到QQ空间" onclick="' + t.share.win + '" href="javascript:" ></a><a class="renren" id="gwdang_renren" target="_self" ahref="' + t.share.renren + '" title="分享到人人网" onclick="' + t.share.win + '" href="javascript:"></a><a class="douban" id="gwdang_douban" target="_self" ahref="' + t.share_good.douban + '" title="分享到豆瓣" onclick="' + t.share.win + '" href="javascript:" ></a></div><div class="clear"></div>')
					} catch (v) {
						if (i.debug) throw v
					}
					if ("right" == i.style) var b = '<input type="radio" name="plt-modify-style[]" style="border:0" value="top"><label>新版(页面顶部)</label><br /><input type="radio" name="plt-modify-style[]" style="border:0" checked="true" value="right"><label>简洁版(页面右侧)</label>';
					else var b = '<input type="radio" name="plt-modify-style[]" style="border:0" checked="true" value="top"><label>新版(页面顶部)</label><br /><input type="radio" name="plt-modify-style[]" style="border:0" value="right"><label>简洁版(页面右侧)</label>';
					e("#plt-acc-div").append('<div class="plt-block" style="display:none" id="plt-modify-block"><h4>请选择样式设置：</h4>' + b + '<br />选择样式后将在下一个页面生效<br /><h4 id="plt-setting-success" style="display:none">设置成功。</h4></div>'), e("#plt-acc-div").append(e("<div>", {
						"class": "plt-block",
						style: "display:none",
						id: "gwdang-feedback"
					}).append(e("<p>", {
						"class": "gwd_title"
					}).text("用户反馈")).append(e("<div>", {
						id: "gwdang-feedback-input"
					}).append(e("<p>").append(e("<span>").text("反馈内容："))).append(e("<p>").append(e("<textarea>", {
						id: "gwdang-feedback-content",
						name: "gwdang-feedback-content",
						maxlength: "400"
					}))).append(e("<p>").append(e("<span>").text("邮箱或QQ：")).append(e("<input>", {
						id: "gwdang-feedback-nick",
						name: "gwdang-feedback-nick",
						value: ""
					}))).append(e("<p>").append(e("<a>", {
						href: "javascript:",
						target: "_self"
					}).append(e("<span>").text("提交反馈")).click(function() {
						f()
					})))).append(e("<p>").append(e("<span>", {
						id: "gwdang-feedback-success"
					}).text("非常感谢您的反馈，我们将尽快处理，努力改进我们的产品。如有需要，将与您联系沟通 :)")).append(e("<span", {
						id: "gwdang-feedback-error-0",
						"class": "gwdang-feedback-error"
					}).text("提交内容不能为空:(")).append(e("<span>", {
						id: "gwdang-feedback-error-1",
						"class": "gwdang-feedback-error"
					}).text("联系方式填写有误:(")).append(e("<span>", {
						id: "gwdang-feedback-error-2",
						"class": "gwdang-feedback-error"
					}).text("反馈提交失败了:("))).append(e("<p>", {
						id: "gwdang-feedback-clean"
					}).append(e("<a>", {
						href: "javascript:",
						target: "_self"
					}).append(e("<span>").text("确定")).click(function() {
						m()
					})))), e("#plt-acc-div").append('<div class="plt-block" style="display:none" id="plt-modify-block"><h4>请选择样式设置：</h4>' + b + '<br />选择样式后将在下一个页面生效<br /><h4 id="plt-setting-success" style="display:none">设置成功。</h4></div>');
					var S = e('<div class="plt-block" id="plt-tmall-block"><img src="https://www.gwdang.com/template/aug/images/loadingAnimation.gif" /></div>');
					S.appendTo("#plt-acc-div");
					var j = e('<div class="plt-block" id="plt-taobao-block"><img src="https://www.gwdang.com/template/aug/images/loadingAnimation.gif" /></div>');
					j.appendTo("#plt-acc-div"), e("#plt-wrapper").append('<div class="plt-clear"></div>'), e("#plt-wrapper").append('<div id="plt-footer" class="plt-block"><a href="https://www.gwdang.com/app/mobile/?from=browser" target="_blank">手机客户端</a>&nbsp;&nbsp;<a href="https://www.gwdang.com/app/extension/?from=browser" target="_blank">分享软件</a>&nbsp;&nbsp;<a href="http://blog.gwdang.com/?p=92&from=browser" target="_blank">反馈意见</a></div>')
				}
				e("body").append(e("<div>", {
					id: "gwd-activity-box",
					style: "width: 500px; height: 550px;position:fixed;_position:absolute;top:50%;left:50%;margin-left:-250px;margin-top:-275px;border:5px solid #ddd; display:none;background: white;z-index: 9999999999999999999999;"
				}).append(e("<iframe>", {
					style: "width: 500px; height: 550px;",
					marginheight: "0",
					marginwidth: "0",
					frameborder: "0",
					scrolling: "no",
					src: i.server + "/share/trend/?dp_id=" + i.now_dp_id + "&dp_ids=" + i.where_buy_dps
				})).append(e("<a>", {
					style: 'display: inline;width: 25px;height: 25px;margin: 0;padding: 0;background: url("http://browser.gwdang.com/images/brwext_assets.png") no-repeat -153px 0;_background-image: url("http://browser.gwdang.com/images/brwext_assets.jpg");border: 0;position: absolute;right: 0;top: 0;cursor: pointer;border-width:0 0 5px 5px;border-color:#ddd;background-color:white;border-style:solid;'
				}).click(function() {
					e("#gwd-activity-box").hide()
				}))), s.init(t.share_good), n(70).minibar(), l.init(t, i.site), "vipshop" === i.site && h.init(), d.init(t.now, i.union), c.addPromoActive(), c.addPromo(c.getPromoData(t)), p.init(I, i.now_dp_id, "right"), e("img.gwdang-lazy").each(function() {
					i.check_image(e(this).attr("data-original"), e(this).attr("id"))
				}), i.IE6 && e("#plt-main").bgiframe(), e("#plt-main").css("height", i.height), e(window).resize(function() {
					i.height = document.documentElement.clientHeight, e("#plt-main").css("height", i.height), e("#plt-wrapper").height(e("#plt-main").height() - 70)
				}), e(window).resize();
				var W;
				i.IE6 ? W = document.documentElement : "amazon" == i.site && window.ActiveXObject && (W = document.body), (i.IE6 || "amazon" == i.site && window.ActiveXObject) && (e("#plt-notifier").css("top", W.scrollTop), e("#plt-mini").css("top", W.scrollTop), e("#plt-main").css("top", W.scrollTop), e("#plt-main").height(i.height), e(window).scroll(function() {
					"amazon" == i.site && window.ActiveXObject ? (e("#plt-notifier").css("top", document.body.scrollTop - i.scrollTop + "px"), e("#plt-mini").css("top", document.body.scrollTop - i.scrollTop + "px"), e("#plt-main").css("top", document.body.scrollTop + "px")) : (e("#plt-notifier").css("top", document.documentElement.scrollTop - i.scrollTop + "px"), e("#plt-mini").css("top", document.documentElement.scrollTop - i.scrollTop + "px"), e("#plt-main").css("top", document.documentElement.scrollTop + "px"))
				})), i.IE6 && e(".star_all").css("margin-left", "40px"), e("#plt-close").click(function() {
					e("#plt-main").hide(), e("#plt-mini").show(), g.get(i.server + "/brwext/permanent_id?version=2&op=set_is_open&is_open=0").done(function(t) {
						i.p_id = t.p_id, i.is_open = t.is_open
					})
				}), e("#plt-modify").click(function() {
					"block" == e("#plt-modify-block").css("display") ? e("#plt-modify-block").css("display", "none") : e("#plt-modify-block").css("display", "block")
				}), e("#plt-feedback").click(function() {
					e("#gwdang-feedback").toggle()
				}), e("#plt-modify-block input").click(function() {
					e("#plt-setting-success").hide(), g.get(i.server + "/brwext/permanent_id?version=2&op=set_style&style=" + e(this).val()).done(function(t) {
						e("#plt-setting-success").show(), setTimeout(function() {
							e("#plt-modify-block").hide(), e("#plt-setting-success").hide()
						}, 1e3), i.p_id = t.p_id, i.is_open = t.is_open, i.style = t.style
					})
				}), e("#plt-mini").click(function() {
					e("#plt-mini").hide(), e("#plt-main").show(), e("#plt-wrapper").height(e("#plt-main").height() - 70), g.get(i.server + "/brwext/permanent_id?version=2&op=set_is_open&is_open=1").done(function(t) {
						i.p_id = t.p_id, i.is_open = t.is_open
					})
				}), 1 == i.is_open && (e("#plt-mini").hide(), e("#plt-main").show(), e("#plt-wrapper").height(e("#plt-main").height() - 70)), e("#plt-mini").css("top", i.position), e("ul.plt-where-buy:empty").parent().hide(), e("#plt_notifier a").attr({
					target: "_blank"
				});
				var F = document.getElementById("plt-mini"),
					H = i.height - 46,
					$ = new a({
						target: F,
						area: [0, H],
						callback: function(t) {
							"number" == typeof t.moveY && i.dragY && (document.getElementById("y").innerHTML = "y:" + t.moveY)
						}
					});
				$.dragY(), "0" == e("#where_buy").text() && e("#plt-mini").css("width", 62), e("#plt-mini").show().animate({
					right: "5px"
				}, 2e3, "swing", function() {
					e(this).animate({
						right: "0"
					}, 100)
				}), r.init(t), "zol" == i.site && e("#float1212").css("z-index", "100")
			}
		}).call(e, n(12), n(1))
	},
	function(t, e, n) {
		(function(e) {
			"use strict";
			t.exports = function(t) {
				var i = (n(12), t.document),
					a = {
						on: function(t, e, n) {
							t.addEventListener ? t.addEventListener(e, n, !1) : t.attachEvent ? t.attachEvent("on" + e, n) : t["on" + e] = n
						},
						un: function(t, e, n) {
							t.removeEventListener ? t.removeEventListener(e, n, !1) : t.detachEvent ? t.detachEvent("on" + e, n) : t["on" + e] = null
						},
						evt: function(e) {
							return e || t.event
						}
					};
				return function(o) {
					function r(t) {
						this.target = t.target, this.bridge = t.bridge, this.dragable = 0 != t.dragable, this.dragY = 0 != t.dragY, this.area = t.area, this.callback = t.callback
					}

					function s(t) {
						t && (u = new r(t), p = new r(t), u.bridge ? a.on(u.bridge, "mousedown", l) : a.on(u.target, "mousedown", l))
					}

					function l(e) {
						var n = u.target,
							o = null;
						e = a.evt(e), n.style.cursor = "move", o = "undefined" != typeof e.srcElement && e.srcElement ? e.srcElement.id : e.target.id, "s_product" != o && (e.stopPropagation && e.stopPropagation(), e.preventDefault ? e.preventDefault() : e.returnValue = !1, n.setCapture ? (a.on(n, "losecapture", c), n.setCapture(), e.cancelBubble = !0) : t.captureEvents && (e.preventDefault(), e.stopPropagation(), a.on(t, "blur", c)), h = e.clientY - n.offsetTop, a.on(i, "mousemove", d), a.on(i, "mouseup", c))
					}

					function d(e) {
						var n, i, o = u.target,
							e = a.evt(e),
							r = e.clientY - h;
						if (u.area) {
							n = t.ActiveXObject && 0 == document.documentElement.clientHeight && document.body.clientHeight > 0 ? u.area[0] + document.body.scrollTop : u.area[0], i = t.ActiveXObject && 0 == document.documentElement.clientHeight && document.body.clientHeight > 0 ? u.area[1] + document.body.scrollTop - 23 : u.area[1];
							var s = t.ActiveXObject && !t.XMLHttpRequest;
							s && (n += document.documentElement.scrollTop, i += document.documentElement.scrollTop), n > r && (r = n), r > i && (r = i)
						}
						if (u.dragable && (u.dragY && (o.style.top = r + "px"), u.callback)) {
							var l = {
								moveY: r
							};
							u.callback.call(u, l)
						}
					}

					function c(o) {
						var r = u.target;
						r.style.cursor = "pointer", a.un(i, "mousemove", d), a.un(i, "mouseup", c), r.releaseCapture && (a.un(r, "losecapture", c), r.releaseCapture()), t.releaseEvents && a.un(t, "blur", c);
						var s = n(16);
						s.get(e.server + "/brwext/permanent_id?version=2&op=set_position&position=" + r.style.top).done(function(n) {
							e.position = n.position, e.scrollTop = e.href.indexOf("amazon") >= 0 && t.ActiveXObject ? document.body.scrollTop : document.documentElement.scrollTop
						})
					}
					var p, h, u = null;
					return s.prototype = {
						dragY: function(t) {
							u.dragY = !0
						},
						setArea: function(t) {
							u.area = t
						},
						setBridge: function(t) {
							u.bridge = t
						},
						setDragable: function(t) {
							u.dragable = t
						},
						reStore: function() {
							u = new r(p), u.target.style.top = "0px"
						},
						getDragY: function() {
							return u.dragY
						}
					}, new s(o)
				}
			}(window)
		}).call(e, n(1))
	},
	function(t, e, n) {
		var i;
		(function(a) {
			"use strict";
			i = function() {
				var t = n(12),
					e = {};
				return e.bindBgiframe = function() {
					function e(t) {
						return t && t.constructor === Number ? t + "px" : t
					}
					t.fn.bgiframe = a.IE6 ? function(n) {
						n = t.extend({
							top: "auto",
							left: "auto",
							width: "auto",
							height: "auto",
							opacity: !0,
							src: ""
						}, n);
						var i = '<iframe class="bgiframe"frameborder="0"tabindex="-1"src="' + n.src + '"style="display:block;position:absolute;z-index:-1;' + (n.opacity !== !1 ? "filter:Alpha(Opacity='0');" : "") + "top:" + ("auto" == n.top ? "expression(((parseInt(this.parentNode.currentStyle.borderTopWidth)||0)*-1)+'px')" : e(n.top)) + ";left:" + ("auto" == n.left ? "expression(((parseInt(this.parentNode.currentStyle.borderLeftWidth)||0)*-1)+'px')" : e(n.left)) + ";width:" + ("auto" == n.width ? "expression(this.parentNode.offsetWidth+'px')" : e(n.width)) + ";height:" + ("auto" == n.height ? "expression(this.parentNode.offsetHeight+'px')" : e(n.height)) + ';"/>';
						return this.each(function() {
							0 === t(this).children("iframe.bgiframe").length && this.insertBefore(document.createElement(i), this.firstChild)
						})
					} : function() {
						return this
					}, t.fn.bgIframe = t.fn.bgiframe
				}, e.fix_sfbest_top_bar = function(e) {
					var n = e;
					if ("sfbest" == a.site) try {
						if ("msie" != a.browser.agent) {
							try {
								t("#float").animate({
									"padding-top": n
								}, 500, "swing")
							} catch (i) {
								t("#float").css("top", n)
							}
							n = "68px"
						} else if (a.IE6) {
							var o = 32;
							t("#float").css("top", document.documentElement.scrollTop + o + "px"), window.onscroll = function() {
								o = t("#gwdang-mini").is(":visible") ? 0 : o, t("#float").css("top", document.documentElement.scrollTop + o + "px")
							}
						} else t("#float").css("top", n)
					} catch (i) {
						if (a.debug) throw i
					}
					return n
				}, e.fix_sfbest_close = function() {
					if ("sfbest" == a.site) try {
						if (setTimeout(function() {
							t("#float").css({
								"padding-top": "0px"
							}), t("body").css("padding-top", "36px")
						}, 501), "msie" == a.browser.agent) {
							t("body").css("padding-top", "36px");
							var e = a.IE6 ? document.documentElement.scrollTop : 0;
							t("#float").css("top", e + "px")
						}
					} catch (n) {
						if (a.debug) throw n
					}
				}, e
			}.call(e, n, e, t), !(void 0 !== i && (t.exports = i))
		}).call(e, n(1))
	},
	function(t, e, n) {
		var i;
		(function(a, o) {
			"use strict";
			i = function() {
				var t = n(14),
					e = n(58),
					i = n(17),
					r = n(19),
					s = n(16);
				return {
					init: function(t) {
						var e, n = a.site,
							s = [];
						for (var l in this.sitePattern) l == n && (s = this.sitePattern[l]);
						if (s.length > 0) {
							for (var d = 0; d < s.length; d++)
								if (o(s[d]).length > 0 && (e = o(s[d]).eq(0))) {
									0 != a.show_promo && (this.insertPromo(e), this.insertPromoActive(e)), 0 != a.show_wishlist && this.insert(e), this.insertDouban(s[d]);
									break
								}
							o(".gwd_promo_active").on("click", function() {
								i("click:mini:promo-ad"), r.log("嵌入促销广告点击")
							}), o(".gwd_promo_brand_layout").on("click", function() {
								r.log("嵌入促销活动点击")
							}), "suning" == a.site && o(".proinfo-main").css("height", "auto")
						}
					},
					autoAddFavor: function() {
						var t = window.location.href.toString();
						t.indexOf("gwd_add_favor_unique") > -1 && o("#gwd_wishlist_btn").click(function(t) {
							t.preventDefault(), e.toggle_favor()
						})
					},
					insertPromo: function(t) {
						o("gwd_promo_brand_layout_" + (a.href.indexOf("tmall") >= 0 ? "tmall" : a.site)).length > 0 || o(t).eq(0).after(o("<div>", {
							id: "gwd_promo_brand_layout_" + (a.href.indexOf("tmall") >= 0 ? "tmall" : a.site),
							"class": "gwd_promo_brand_layout"
						}))
					},
					insertPromoActive: function(t) {
						o("#gwd_promo_active_" + (a.href.indexOf("tmall") >= 0 ? "tmall" : a.site)).length > 0 || o(t).eq(0).after(o("<div>", {
							id: "gwd_promo_active_" + (a.href.indexOf("tmall") >= 0 ? "tmall" : a.site),
							"class": "gwd_promo_active"
						}))
					},
					insertDouban: function(t) {
						o("#gwdang_douban_div").length > 0 || (o(t).eq(0).after(o("<div>", {
							id: "gwdang_douban_div"
						})), "yihaodian" == a.site && o("#gwdang_douban_div").prev().find(".compare_con").css("z-index", "1"))
					},
					insert: function(t) {
						var e = this;
						if (!(o("#gwd_wishlist_div").length > 0)) {
							var n = o("<div>", {
								id: "gwd_wishlist_div",
								"class": "gwd_wishlist_div gwd_" + (a.href.indexOf("tmall") >= 0 ? "tmall" : a.site)
							}).append(o("<a>", {
								"class": "gwd_website_icon",
								title: "购物党",
								id: "gwd_website_icon",
								target: "_blank",
								href: "https://www.gwdang.com"
							}).append(o("<em>", {
								"class": "gwd_bg"
							}))).append(o("<a>", {
								"class": "gwd_wishlist_btn gwd_wishlist_trend",
								id: "gwd_price_history_btn",
								target: "_self",
								title: "查看该商品的180价格历史",
								style: "display:none"
							}).append(o("<em>", {
								"class": "gwd_bg price-trend-icon"
							})).append(o("<span>").text("价格历史"))).append(o("<div>", {
								"class": "shuxian",
								style: "display:none"
							}).text("|")).append(o("<a>", {
								"class": "gwd_wishlist_btn gwd_wishlist_btn_handle_event",
								id: "gwd_wishlist_btn",
								target: "_self",
								title: "收藏到购物党全网收藏夹，并获得降价提醒"
							}).click(function(t) {
								t.preventDefault(), e.addMini()
							}).append(o("<em>", {
								"class": "gwd_bg collect-mailout-icon"
							})).append(o("<span>").text("降价提醒")));
							"maxthon" !== a.from_device && n.append(o("<div>", {
								"class": "shuxian"
							}).text("|")).append(o("<div>", {
								id: "gwd-brand-subscribe-box"
							}).append(o("<a>", {
								"class": "gwd-brand-subscribe",
								id: "gwd-brand-subscribe-btn",
								title: "品牌特卖提前知道"
							}).append(o("<span>", {
								"class": "gwd-bg gwd-brand-subscribe-icon-blue"
							})).append(o("<span>", {
								"class": "gwd-brand-subscribe-text"
							}).text("关注此品牌")))), n.append(o("<div>", {
								id: "gwd_wishlist_trend_detail"
							}).append(o("<div>", {
								id: "gwd_wishlist_trend_compare"
							}).append(o("<div>", {
								id: "trend_detail_top"
							}).text("商城比价:")).append(o("<div>", {
								id: "trend_detail_body"
							}).append(o("<div>", {
								id: "trend_detail_body_ul"
							}))).append(o("<div>", {
								id: "trend_detail_bottom"
							}).append(o("<div>", {
								id: "trend_detail_remained_me",
								title: "收藏并降价提醒",
								"class": "gwd_wishlist_btn gwd_wishlist_btn_handle_event"
							}).text("降价提醒").click(function(t) {
								t.preventDefault(), e.addMini()
							})))).append(o("<div>", {
								"class": "gwd_wishlist_trend_detail_wrapper",
								style: "float:left"
							}).append(o("<div>", {
								id: "gwd_wishlist_trend_detail_chart"
							})).append(o("<div>", {
								id: "gwd_wishlist_trend_detail_info"
							})))).append(o("<div>", {
								style: "clear:both"
							})), t.after(n), o("#gwd_website_icon").on("click", function() {
								i("click:main:logo"), r.log("嵌入比价区logo点击")
							});
							var s = "mouseout",
								l = "mouseover";
							"msie" == a.browser.agent && (s = "mouseleave", l = "mouseenter"), o("#gwd_price_history_btn").bind(l, function() {
								clearTimeout(a.timer4), o("#gwd_wishlist_div").addClass("gwd_wishlist_div_hover"), o("#gwd_price_history_btn").addClass("gwd_wishlist_trend_hover"), o("#gwd_wishlist_trend_detail").show(), (!o(".gwd_promo_brand_layout").length || o(".gwd_promo_brand_layout").height() < 90) && o(".gwd_wishlist_div").css("height", "150px"), i("hover:mini:pricetrend"), r.log("嵌入价格趋势鼠标悬浮")
							}).bind(s, function() {
								clearTimeout(a.timer4), a.timer4 = setTimeout(function() {
									o("#gwd_price_history_btn").removeClass("gwd_wishlist_trend_hover"), o("#gwd_wishlist_div").removeClass("gwd_wishlist_div_hover"),
										o("#gwd_wishlist_trend_detail").hide(), o(".gwd_wishlist_div").css("height", "30px")
								}, 300)
							}).bind("click", function() {
								clearTimeout(a.timer4), "block" == o("#gwd_wishlist_trend_detail").css("display") ? (o("#gwd_price_history_btn").removeClass("gwd_wishlist_trend_hover"), o("#gwd_wishlist_div").removeClass("gwd_wishlist_div_hover"), o("#gwd_wishlist_trend_detail").hide(), o(".gwd_wishlist_div").css("height", "30px")) : (o("#gwd_wishlist_div").addClass("gwd_wishlist_div_hover"), o("#gwd_price_history_btn").addClass("gwd_wishlist_trend_hover"), o("#gwd_wishlist_trend_detail").show(), (!o(".gwd_promo_brand_layout").length || o(".gwd_promo_brand_layout").height() < 90) && o(".gwd_wishlist_div").css("height", "150px"))
							}), o("#gwd_wishlist_trend_detail").bind(l, function() {
								clearTimeout(a.timer4), o("#gwd_price_history_btn").addClass("gwd_wishlist_trend_hover"), o("#gwd_wishlist_div").addClass("gwd_wishlist_div_hover"), o("#gwd_wishlist_trend_detail").show(), (!o(".gwd_promo_brand_layout").length || o(".gwd_promo_brand_layout").height() < 90) && o(".gwd_wishlist_div").css("height", "150px")
							}).bind(s, function() {
								clearTimeout(a.timer4), a.timer4 = setTimeout(function() {
									o("#gwd_wishlist_div").removeClass("gwd_wishlist_div_hover"), o("#gwd_price_history_btn").removeClass("gwd_wishlist_trend_hover"), o("#gwd_wishlist_trend_detail").hide(), o(".gwd_wishlist_div").css("height", "30px")
								}, 300)
							})
						}
					},
					addMini: function() {
						var e = a.collectInfo;
						return a.dp = t.get(!0), "" == e.dp_id ? (o("a.gwd_wishlist_btn_handle_event span").text("暂不支持"), o("div.gwd_wishlist_btn_handle_event").text("暂不支持"), void o("a.gwd_wishlist_btn_handle_event").unbind("click")) : (o("a.gwd_wishlist_btn_handle_event span").text("正在添加"), o("div.gwd_wishlist_btn_handle_event").text("正在添加"), "" == e.title ? e.title = o("title").text() : ("" == e.price || parseFloat(e.price) != e.price) && (e.price = 0), e.price || (e.price = a.dp.price), void s.get(a.c_server + "/collect/aj_add?dp_id=" + e.dp_id + "&url=" + encodeURIComponent(e.url || a.dp.url) + "&img=" + encodeURIComponent(e.img || a.dp.img) + "&title=" + encodeURIComponent(e.title || a.dp.name) + "&price=" + e.price + "&site_id=" + e.site_id + "&cat_id=" + a.dp.cat_id).done(function(t) {
							if (100 == t.code || t.code <= 0) {
								var e = window.location.href.toString();
								e += e.indexOf("?") > -1 ? "&gwd_add_favor_unique=true" : "?gwd_add_favor_unique=true", window.location.href = a.c_server + "/user/login?from_url=" + encodeURIComponent(e)
							} else 1 == t.code ? (o("a.gwd_wishlist_btn_handle_event em").attr("class", "collect-mailin-icon"), o("a.gwd_wishlist_btn_handle_event span").text("已添加提醒"), o("div.gwd_wishlist_btn_handle_event").text("已添加提醒"), o("a.gwd_wishlist_btn_handle_event").unbind("click"), o("div.gwd_wishlist_btn_handle_event").unbind("click")) : 2 == t.code && (o("a.gwd_wishlist_btn_handle_event em").attr("class", "collect-mailin-icon"), o("a.gwd_wishlist_btn_handle_event span").text("已添加提醒"), o("div.gwd_wishlist_btn_handle_event").text("已添加提醒"), o("a.gwd_wishlist_btn_handle_event").unbind("click"), o("div.gwd_wishlist_btn_handle_event").unbind("click"))
						}).fail(function() {
							o("a.gwd_wishlist_btn_handle_event span").text("收藏失败"), o("div.gwd_wishlist_btn_handle_event").text("收藏失败")
						}))
					},
					favor: function(t, e, n) {
						if (o(t)) {
							var i = this,
								r = o("<div>", {
									"class": "gwd-favor-module gwd-close-module"
								}).mouseenter(function() {
									i.bottom_list_favor()
								}).append(o("<a>", {
									id: "gwd_favor",
									"class": "gwd-tab gwd-favor",
									href: a.c_server + "/mine/collection",
									title: "查看我的全网收藏夹",
									target: "_blank"
								}).append(o("<em>", {
									"class": "gwd-favor-bg"
								}))).append(o("<div>", {
									"class": "gwd-detail gwd-not-login gwd-loading",
									id: "gwd-favor-detail"
								}).append(o("<p>", {
									"class": "gwd-compare-item-detail-title gwd-height-auto"
								}).append(o("<span>", {
									"class": "gwd-detail-title-desc"
								}).html('我的收藏(<em id="gwd_favor_num">0</em>个)')).append(o("<a>", {
									"class": "gwd-blue",
									href: a.c_server + "/mine/collection",
									target: "_blank"
								}).html("查看全部"))).append(o("<img>", {
									"class": "gwd-loading-img",
									src: a.s_server + "/images/loading.gif"
								})).append(o("<p>", {
									"class": "gwd-login-info",
									style: "padding: 12px 0px 5px;"
								}).html('请先 <a class="gwd-blue" href="' + a.c_server + "/user/login?from_url=" + encodeURIComponent(window.location && window.location.href) + '" target="_self">登录</a> 购物党，或使用第三方账号：')).append(o("<p>", {
									"class": "gwd-login-info",
									style: "height:75px;"
								}).append(o("<a>", {
									href: a.c_server + "/user/oauthh/?pl=2&op=login&from_url=" + encodeURIComponent(window.location && window.location.href),
									"class": "gwd-sina gwd-bg",
									target: "_self"
								})).append(o("<a>", {
									href: a.c_server + "/user/oauth/?pl=7&op=login&from_url=" + encodeURIComponent(window.location && window.location.href),
									"class": "gwd-qq gwd-bg",
									target: "_self"
								}))).append(o("<ul>", {
									id: "gwd_favor_item_list",
									"class": "gwd-item-list"
								})).append(o("<span>", {
									id: "gwd-favor-notice"
								}).hide()).append(o("<a>", {
									id: "gwd_add_favor",
									"class": "gwd-add-favor gwd-bg",
									href: "javascript:void(0)"
								}).text("收藏该商品").click(function(t) {
									t.preventDefault(), i.add_favor()
								})));
							switch (e) {
								case "append":
									o(t).append(r);
									break;
								case "after":
									o(t).after(r);
									break;
								default:
									o(t).after(r)
							}
							try {
								"taobao" == a.site || "tmall" == a.site ? n.collectInfo.dp_id && n.exact_arr.taobao_same_id && n.collectInfo.dp_id == n.exact_arr.taobao_same_id && n.collectInfo.price && parseInt(n.collectInfo.price) > 0 || o("#gwd_add_favor").remove() : n.now && "" == n.now.now_dp_id && o("#gwd-favor-detail .gwd-add-favor").remove()
							} catch (s) {
								if (a.debug) throw s
							}
						}
					},
					add_favor: function() {
						var e = this,
							n = a.collectInfo;
						a.dp = t.get(!0), o("#gwd_add_favor").text("正在收藏"), "" == n.title ? n.title = o("title").html() : ("" == n.price || parseFloat(n.price) != n.price) && (n.price = 0), "" == n.price && (n.price = a.dp.price), s.get(a.c_server + "/collect/aj_add?dp_id=" + n.dp_id + "&url=" + encodeURIComponent(n.url || location.href) + "&img=" + encodeURIComponent(n.img) + "&title=" + encodeURIComponent(n.title) + "&price=" + n.price + "&site_id=" + n.site_id + "&cat_id=" + a.dp.cat_id).done(function(t) {
							o("#gwd_add_favor").text("收藏该商品"), 100 == t.code || t.code <= 0 ? (o("#gwd_add_favor").hide(), o("#gwd_favor_item_list").empty().hide(), o("#gwd-favor-detail .gwd-login-info").show()) : 1 == t.code ? (a.collectionChanged = !0, e.bottom_list_favor(), o("#gwd_add_favor").text("收藏成功"), o("a.gwd_wishlist_btn_handle_event em").removeClass("collect-mailout-icon"), o("a.gwd_wishlist_btn_handle_event em").addClass("collect-mailin-icon"), o("a.gwd_wishlist_btn_handle_event span").text("已添加提醒"), o("div.gwd_wishlist_btn_handle_event").text("已添加提醒"), o("a.gwd_wishlist_btn_handle_event").unbind("click"), o("div.gwd_wishlist_btn_handle_event").unbind("click")) : 2 == t.code && (o("#gwd_add_favor").text("已添加提醒"), o("a.gwd_wishlist_btn_handle_event em").removeClass("collect-mailout-icon"), o("a.gwd_wishlist_btn_handle_event em").addClass("collect-mailin-icon"), o("a.gwd_wishlist_btn_handle_event span").text("已添加提醒"), o("div.gwd_wishlist_btn_handle_event").text("已添加提醒"), o("a.gwd_wishlist_btn_handle_event").unbind("click"), o("div.gwd_wishlist_btn_handle_event").unbind("click"), a.browser.agent && "tmall" == a.site && e.bottom_list_favor())
						}).fail(function() {
							o("#gwd_add_favor").text("收藏商品")
						})
					},
					bottom_list_favor: function() {
						var t = this;
						(a.collectionChanged || "tmall" == a.site || !a.browser.agent) && (a.collectionChanged = !1, o("#gwd-favor-detail .gwd-loading-img").css("visibility", "visible"), s.get(a.c_server + "/app/collection?").done(function(e) {
							if (o("#gwd-favor-detail .gwd-loading-img").css("visibility", "hidden"), 1 == e.error_code)
								if (o("#gwd-favor-detail .gwd-login-info").hide(), "" == a.collectInfo.dp_id ? o("#gwd_add_favor").hide() : o("#gwd_add_favor").show(), o("#gwd_favor_item_list").empty().show(), e.products.length > 0) {
									for (var n = 0; 3 > n && n < e.products.length; n++) {
										var i = e.products[n];
										o("#gwd_favor_item_list").append(o("<li>", {
											"class": "gwd-list-item",
											style: "display:block"
										}).append(o("<a>", {
											"class": "gwd-favor-pic",
											target: "_blank",
											href: i.url
										}).append(o("<img>", {
											src: "http://browser.gwdang.com/template/aug/images/new/120.gif",
											"data-original": i.pic_url,
											d_width: 60,
											d_height: 60,
											id: "gwdang-favor-dp" + i.dp_id
										}))).append(o("<p>", {
											"class": "gwd-favor-product-title"
										}).append(o("<a>", {
											href: i.url,
											target: "_blank"
										}).text(i.title))).append(o("<span>", {
											"class": "gwd-price gwd-favor-price"
										}).html("&yen; " + i.now_price + "<em> 起</em>")).append(o("<span>", {
											"class": "gwd-del gwd-gray",
											dp_id: i.dp_id
										}).text("删 除")))
									}
									o(".gwd-del").click(function() {
										t.bottom_del_favor(o(this).attr("dp_id")), o("#gwd_add_favor").text("收藏商品")
									}), o("#gwd_favor_num").text(e.total_cnt), o("#gwd_favor_item_list img").each(function() {
										var t = o(this);
										t.attr("data-original") != t.attr("src") && a.checkImage(t.attr("data-original"), t, 90, function() {
											t.height() < 60 && t.css("marginTop", 30 - t.height() / 2)
										})
									})
								} else o("#gwd_favor_num").text("0"), o("#gwd_favor_item_list").append(o("<p>", {
									style: "text-indent: 2em;line-height: 20px;padding: 26px!important;"
								}).text("您还没有收藏商品。收藏后可获得商品降价/到货提醒，帮助您及时入手想要的商品。"));
							else 0 == e.error_code && (o("#gwd_add_favor").hide(), o("#gwd_favor_item_list").empty().hide(), o("#gwd-favor-detail .gwd-login-info").show())
						}).fail(function() {
							o("#gwd_favor_item_list").append(o("<p>", {
								style: "text-indent: 2em;line-height: 20px;padding: 26px!important;"
							}).html('亲，不好意思服务器开小差了，拉取数据失败，点击 <a class="gwd-blue" href="https://www.gwdang.com/mine/collection?from=hao123" target="_blank">收藏夹</a> 查看更多..')), o("#gwd_add_favor").hide(), o("#gwd-favor-detail .gwd-loading-img").css("visibility", "hidden")
						}))
					},
					bottom_del_favor: function(t) {
						var e = this;
						s.get(a.c_server + "/collect/aj_del?dp_id=" + t).done(function(t) {
							1 == t.code ? (o("#gwd-favor-notice").show().text("删除成功").fadeOut(3e3), a.collectionChanged = !0, e.bottom_list_favor()) : 100 == t.code ? (o("#gwd_add_favor").hide(), o("#gwd_favor_item_list").empty().hide(), o("#gwd-favor-detail .gwd-login-info").show()) : a.browser.agent && "tmall" == a.site && (o("#gwd-favor-notice").show().text("删除成功").fadeOut(3e3), e.bottom_list_favor())
						}).fail(function() {
							o("#gwd-favor-notice").show().text("删除成功").fadeOut(3e3)
						})
					},
					sitePattern: {
						vmall: [".pro-price"],
						yougou: ["#ygprice_area"],
						gome: [".prdprice"],
						vipshop: [".pi-price-box"],
						"360buy": ["#summary-price", "#surplus-time"],
						"360buy-book": ["#summary-price"],
						taobao: [".tm-fcs-panel", "#J_PromoPrice", "#J_StrPriceModBox"],
						tmall: [".tm-fcs-panel", "#J_PromoPrice", "#J_StrPriceModBox"],
						"51buy": ['.xbase_item:contains("促销价")', '.xbase_item:contains("易迅价")', "#goods_detail_mate .item_icson", ".xbase_row2", "#promotePrice", "#shopprice", "#promotePriceArea"],
						suning: ["#_main_price", "#existPrice", "#netPriceBox", "#hasPrice"],
						dangdang: [".price_qiang", ".price_info", ".show_info .sale>p", ".sale_box:first"],
						yihaodian: ["#point_productPrice", ".price_array", "#currentPriceArea"],
						vancl: ["#pricearea .cuxiaoPrice"],
						newegg: [".neweggPrice", ".goods_price_now"]
					}
				}
			}.call(e, n, e, t), !(void 0 !== i && (t.exports = i))
		}).call(e, n(1), n(12))
	},
	function(t, e, n) {
		var i;
		(function(a) {
			"use strict";
			i = function() {
				function t() {
					var t = a.collectInfo;
					if ("" == t.img)
						for (var n in o("img")) {
							var i = o("img").eq(n),
								s = parseInt(o(i).width()),
								l = parseInt(o(i).height());
							if (s >= 200 && 800 >= s && l >= 200 && 800 >= l && s / l >= .5 && 1.5 >= s / l) {
								t.img = o(i).attr("src");
								break
							}
						}
					if ("" == t.title && (t.title = o("title").html()), "" == t.url) {
						var d = document.location.href;
						t.url = d
					}
					"" == t.price && (t.price = r.get().price), a.collectInfo = t;
					var c = "";
					a.IE6 && a.IE7 && (c = "margin-top:-25px;"), o("#gwdang-favor-detail ul.item-list").prepend(o("<li>", {
						"class": "pop",
						style: "height:0"
					}).append(o("<div>", {
						"class": "pic"
					}).append(o("<a>", {
						href: "javascript:"
					}).append(o("<img>", {
						src: "http://browser.gwdang.com/template/aug/images/new/120.gif",
						"data-original": t.img,
						d_width: 60,
						d_height: 60,
						id: "gwdang-add-favor-dp"
					}).load(function() {
						var t = o(this),
							e = o(this).attr("id");
						t.attr("data-original") != t.attr("src") && a.check_image(t.attr("data-original"), e, 60)
					})))).append(o("<ul>", {
						"class": "item-info"
					}).append(o("<li>", {
						"class": "tle"
					}).append(o("<input>").val(t.title).keyup(function() {
						a.collectInfo.title = o(this).val()
					}))).append(o("<li>", {
						"class": "pri"
					}).append("￥").append(o("<input>").val(t.price).keyup(function() {
						a.collectInfo.price = o(this).val()
					})).append(o("<button>", {
						style: c
					}).text("确认").click(function(t) {
						t.preventDefault(), e()
					})))))
				}

				function e() {
					var t = a.collectInfo;
					a.dp = r.get(!0), o("#gwdang-favor-detail .add").text("正在收藏"), "" == t.title ? t.title = o("title").html() : ("" == t.price || parseFloat(t.price) != t.price) && (t.price = 0), t.price || (t.price = a.dp.price), l.get(a.c_server + "/collect/aj_add?dp_id=" + t.dp_id + "&url=" + encodeURIComponent(t.url || location.href) + "&img=" + encodeURIComponent(t.img) + "&title=" + encodeURIComponent(t.title) + "&price=" + t.price + "&site_id=" + t.site_id + "&cat_id=" + a.dp.cat_id).done(function(t) {
						o("#gwdang-favor-detail .add").text("收藏商品"), 100 == t.code || t.code <= 0 ? (o("#gwdang-favor-detail ul.item-list>li[class!=pop]").remove(), o("#gwdang-favor-detail .add").hide(), o("#gwdang-favor-detail .pop-login").show()) : 1 == t.code ? (o("#gwdang-favor-detail .favor-notice").show().text("收藏成功").fadeOut(3e3), s.list_favor(), o("a.gwd_wishlist_btn_handle_event em").attr("class", "collect-mailin-icon"), o("a.gwd_wishlist_btn_handle_event span").text("添加成功"), o("div.gwd_wishlist_btn_handle_event").text("添加成功"), o("a.gwd_wishlist_btn_handle_event").unbind("click"), o("div.gwd_wishlist_btn_handle_event").unbind("click")) : 2 == t.code && (o("#gwdang-favor-detail .favor-notice").show().text("收藏过了").fadeOut(3e3), o("a.gwd_wishlist_btn_handle_event em").attr("class", "collect-mailin-icon"), o("a.gwd_wishlist_btn_handle_event span").text("收藏过了"), o("div.gwd_wishlist_btn_handle_event").text("收藏过了"), o("a.gwd_wishlist_btn_handle_event").unbind("click"), o("div.gwd_wishlist_btn_handle_event").unbind("click"), a.browser.agent && "tmall" == a.site && s.list_favor()), o("#gwdang-favor-detail ul.item-list .pop").animate({
							height: 0
						}, 500, function() {
							o("#gwdang-favor-detail ul.item-list .pop").hide()
						})
					}).fail(function() {
						o("#gwdang-favor-detail .add").text("收藏商品"), o("#gwdang-favor-detail .favor-notice").show().text("收藏成功").fadeOut(3e3), s.list_favor(), o("#gwdang-favor-detail ul.item-list .pop").animate({
							height: 0
						}, 500, function() {
							o("#gwdang-favor-detail ul.item-list .pop").hide()
						})
					})
				}

				function i(t) {
					l.get(a.c_server + "/collect/aj_del?dp_id=" + t).done(function(t) {
						1 == t.code ? (o("#gwdang-favor-detail .favor-notice").show().text("删除成功").fadeOut(3e3), s.list_favor()) : 100 == t.code ? (o("#gwdang-favor-detail ul.item-list>li[class!=pop]").remove(), o("#gwdang-favor-detail .add").hide(), o("#gwdang-favor-detail .pop-login").show()) : a.browser.agent && "tmall" == a.site && (o("#gwdang-favor-detail .favor-notice").show().text("删除成功").fadeOut(3e3), s.list_favor())
					}).fail(function() {
						o("#gwdang-favor-detail .favor-notice").show().text("删除成功").fadeOut(3e3), s.list_favor()
					})
				}
				var o = n(12),
					r = n(14),
					s = {},
					l = n(16);
				return s.list_favor = function() {
					l.get(a.c_server + "/app/collection").done(function(t) {
						if (o("#gwdang-favor-detail .loading").hide(), 1 == t.error_code)
							if (o("#gwdang-favor-detail .pop-login").hide(), "" == a.collectInfo.dp_id ? o("#gwdang-favor-detail .add").hide() : o("#gwdang-favor-detail .add").show(), o("#gwdang-favor-detail ul.item-list>li[class!=pop]").remove(), o("#gwdang-favor-detail ul.item-list").html("").show(), t.products.length > 0) {
								for (var e = 0; 3 > e && e < t.products.length; e++) {
									var n = t.products[e];
									o("#gwdang-favor-detail ul.item-list").append(o("<li>").append(o("<div>", {
										"class": "pic"
									}).append(o("<a>", {
										target: "_blank",
										href: n.url
									}).append(o("<img>", {
										src: "http://browser.gwdang.com/template/aug/images/new/120.gif",
										"data-original": n.pic_url,
										d_width: 60,
										d_height: 60,
										id: "gwdang-favor-dp" + n.dp_id
									})))).append(o("<ul>", {
										"class": "item-info"
									}).append(o("<li>", {
										"class": "tle"
									}).append(o("<a>", {
										target: "_blank",
										href: n.url
									}).text(n.title))).append(o("<li>", {
										"class": "pri"
									}).append(o("<a>", {
										target: "_blank",
										href: n.url
									}).text("￥" + n.now_price).append(o("<span>", {
										style: "color:#333"
									}).text(" 起"))).append(o("<a>", {
										"class": "del",
										href: "javascript:",
										dp_id: n.dp_id
									}).text("删除")))))
								}
								o("#gwdang-favor-detail .del").click(function() {
									i(o(this).attr("dp_id")), o("#gwdang-favor-detail a.add").text("收藏商品")
								}), o("#gwdang-favor-detail ul.item-list").append(o("<li>", {
									style: "float:right;height:20px;color:#177EE5;border:0;"
								}).append(o("<a>", {
									href: "https://www.gwdang.com/mine?method=myCollection&from=browser&m=favor&orderby=collection_time&order=desc&pricedown=1",
									style: "color:#177EE5;",
									target: "_blank"
								}).text("查看全部（" + t.total_cnt + "）"))), o("#gwdang-favor-detail ul.item-list img").each(function() {
									var t = o(this),
										e = o(this).attr("id");
									t.attr("data-original") != t.attr("src") && a.check_image(t.attr("data-original"), e, 60)
								})
							} else o("#gwdang-favor-detail ul.item-list").text("您还没有收藏商品。收藏后可获得商品降价/到货提醒，帮助您及时入手想要的商品。");
						else 0 == t.error_code && (o("#gwdang-favor-detail ul.item-list").html(""), o("#gwdang-favor-detail .add").hide(), o("#gwdang-favor-detail .pop-login").show());
						a.hiddenFavorButton && o("#gwdang-favor-detail a.add").hide()
					}).fail(function() {
						o("#gwdang-favor-detail .loading").hide(), o("#gwdang-favor-detail ul.item-list").html(""), o("#gwdang-favor-detail .add").hide(), o("#gwdang-favor-detail .panel-main").html("很抱歉，心愿单暂时不支持IE6、IE7<br>建议您更新到IE8以上再试。").css("color", "#666").css("padding", "5px 10px")
					})
				}, s.toggle_favor = function() {
					var n = a.collectInfo;
					if ("" != n.dp_id && "" != n.img && "" != n.title && "" != n.price && "" != n.url) e();
					else {
						if (0 == o("#gwdang-favor-detail ul.item-list .pop").length) return t(), void o("#gwdang-favor-detail ul.item-list .pop").show().animate({
							height: 82
						}, 500, function() {});
						if (0 != o("#gwdang-favor-detail ul.item-list .pop").height()) return void o("#gwdang-favor-detail ul.item-list .pop").animate({
							height: 0
						}, 500, function() {
							o("#gwdang-favor-detail ul.item-list .pop").hide()
						});
						o("#gwdang-favor-detail ul.item-list .pop").show().animate({
							height: 82
						}, 500, function() {})
					}
				}, s
			}.call(e, n, e, t), !(void 0 !== i && (t.exports = i))
		}).call(e, n(1))
	},
	function(t, e, n) {
		var i;
		(function(a) {
			"use strict";
			i = function() {
				function t(t, n) {
					"" != t && u.get(a.server + "/brwext/guess_favor?dp_id=" + t + "&site_id=" + n + "&union=" + a.union).done(function(t) {
						a.debug && (t = t || [], t.push({
							url: "http://u.gwdang.com/go/25/17016296/?u=gwdang&column=alsoview_17016296_25&from=browser&m=b2c&title=AKG+%CD%B7%B4%F7%CA%BD%B6%FA%BB%FA+K452+%B0%D7%C9%AB",
							img_url: "http://image5.suning.cn/b2c/catentries/000000000104438717_1_400x400.jpg",
							title: "AKG 头戴式耳机 K452 白色很长很长很长的文字我日还是不够长",
							price: "￥649.00",
							rev_num: "0"
						}), t.push(t[0])), setTimeout(function() {
							var n = e(t);
							r(n, l)
						}, 400)
					})
				}

				function e(t) {
					var e = o(),
						n = t.slice(0, e);
					if (n.length > 0)
						for (var a = 0; a < n.length; a++) n[a].price = i(n[a].price);
					return n
				}

				function i(t) {
					var e, n, i = parseFloat(t) / 100,
						a = i.toString();
					return a.match(/\./) ? (e = a.split("."), n = 1 == e[1].length ? "￥" + e[0] + "." + e[1] + "0" : "￥" + e[0] + "." + e[1]) : n = "￥" + a + ".00", n
				}

				function o() {
					return f[a.site] ? f[a.site]() : 4
				}

				function r(t, e) {
					0 != t.length && (a.site.indexOf("suning") > -1 && p(".proinfo-left").css("height", "auto"), p(e).after(h.compile(d)({
						product: t
					})), a.site.indexOf("suning") > -1 && setTimeout(function() {
						p(".proinfo-left").height() > p(".proinfo-main").height() && p(".proinfo-main").css("height", p(".proinfo-left").height() - 60)
					}, 1e3), p("#gwd_guess_favor").find("img").on("error", function() {
						p(this).attr("src", "https://s1.gwdang.com/images/white.png"), p(this).css("background", "#fff")
					}), n(17)("track:guess_favor"), p("#gwd_guess_favor .gwd_guess_content").click(function() {
						n(17)("click:guess_favor")
					}))
				}

				function s(t) {
					for (var e in g)
						if (t == e) return l = g[e], d = n(60)("./" + m[t] + ".html"), !0;
					return !1
				}
				var l, d, c = {},
					p = n(12),
					h = n(13),
					u = n(16),
					g = {
						"360buy": "#product-intro .jd-service",
						suning: ".proinfo-left .imgzoom-memo",
						"51buy": ".xsns.clearfix",
						gome: ".fr.oh .mt10"
					},
					m = {
						"360buy": "guess_favor_1",
						suning: "guess_favor_2",
						"51buy": "guess_favor_2",
						gome: "guess_favor_1"
					},
					f = {
						"360buy": function() {
							var t = p("#product-intro").outerHeight(),
								e = p("#product-intro .m-item-ext.J-ext-trigger").outerHeight(),
								n = t - e - 35,
								i = Math.round(n / 89);
							return 0 == i && (i = 1), i
						},
						"51buy": function() {
							var t = p(".grid_m").height() - p(".grid_s").height(),
								e = parseInt(t / 36);
							return 0 == e && (e = 1), e
						},
						gome: function() {
							var t = -parseInt(p(".fr.oh").css("margin-bottom")) - parseInt(p(".fr.oh").css("padding-bottom")) - parseInt(p(".fr.oh").css("height"));
							p("#store_live800_wrap").length && (t -= 80);
							var e = parseInt(t / 90);
							return 0 == e && (e = 1), e
						}
					};
				return c.init = function(e, n) {
					var i = e.now.now_dp_id,
						o = e.now.site_id;
					s(n) && 1 == a.get_favor && t(i, o)
				}, c
			}.call(e, n, e, t), !(void 0 !== i && (t.exports = i))
		}).call(e, n(1))
	},
	function(t, e, n) {
		function i(t) {
			return n(a(t))
		}

		function a(t) {
			return o[t] || function() {
				throw new Error("Cannot find module '" + t + "'.")
			}()
		}
		var o = {
			"./common_vipsearch.html": 61,
			"./guess_favor_1.html": 62,
			"./guess_favor_2.html": 63,
			"./haitaoMain.html": 24,
			"./ht_size_detail.html": 25,
			"./ht_transport_detail.html": 26,
			"./mobileprice_1.html": 64,
			"./versionhtml.html": 39,
			"./vip_search.html": 36
		};
		i.keys = function() {
			return Object.keys(o)
		}, i.resolve = a, t.exports = i, i.id = 60
	},
	function(t, e) {
		t.exports = '<div id="common_vipsearch">\r\n  \r\n  <input type="text" id="vipsearch_txt" style="width:{{s_width}}px">\r\n  <span id="vipsearch_btn"></span>\r\n  <style type="text/css">\r\n    #common_vipsearch {\r\n      display: inline-block;\r\n      height: 26px;\r\n      background-color: #fff;\r\n      margin-top: 2px;\r\n      border: 1px solid #f10582;\r\n    }\r\n    #vipsearch_txt {\r\n      height: 26px;\r\n      display: inline-block;\r\n      float: left;\r\n      border: 1px solid #f10582;\r\n      border-right-width: 2px;\r\n      border-top-width: 0px;\r\n      padding: 0 4px;\r\n      font-family: \'微软雅黑\';\r\n      color: #666;\r\n      font-size: 14px;\r\n    }\r\n    #vipsearch_btn {\r\n      background: url(\'https://s1.gwdang.com/images/vip_search_btn.png\');\r\n      display: inline-block;\r\n      width: 28px;\r\n      height: 28px;\r\n      background-repeat: no-repeat;\r\n      background-position: 3px 2px;\r\n      background-size: 22px 22px;\r\n      cursor: pointer;\r\n    }\r\n  </style>\r\n</div>'
	},
	function(t, e) {
		t.exports = '<div id="gwd_guess_favor">\r\n  <div class="gwd_guess_head">猜你喜欢:</div>\r\n  <div class="gwd_guess_content">\r\n    <ul class="gwd_guess_list">\r\n      {{each product}}\r\n        <li class="gwd_guess_item gwd_index{{($index==product.length-1)?$index:0}}">\r\n          <div class="gwd_margin_div"></div>\r\n          <div class="gwd_dp_info">\r\n            <a class="gwd_dp_img" href="{{$value.url}}" target="_blank" >\r\n              <img src="{{$value.img_url}}">\r\n            </a>\r\n            <a class="gwd_dp_title" href="{{$value.url}}" target="_blank" title="{{$value.title}}">{{$value.title}}</a>\r\n          </div>\r\n          <div class="gwd_dp_des">\r\n            <a class="gwd_rev" href="{{$value.url}}" target="_blank">\r\n              <span>已有</span>\r\n              <span class="gwd_rev_num">{{$value.rev_num}}</span>\r\n              <span>人评价</span>\r\n            </a>\r\n            <a class="gwd_price" href="{{$value.url}}" target="_blank">{{$value.price}}</a>\r\n          </div>\r\n        </li>\r\n      {{/each}}\r\n    </ul>\r\n  </div>\r\n  <style type="text/css">\r\n  /*猜你喜欢模块*/\r\n  #gwd_guess_favor{\r\n    width:200px;\r\n    border: 1px solid #dbdbdb;\r\n  }\r\n  .gwd_gome #gwd_guess_favor{\r\n    margin-top: -5px;\r\n    border: none;\r\n    width: 188px;\r\n  }\r\n  #gwd_guess_favor .gwd_guess_head{\r\n    height: 35px;\r\n    line-height: 35px;\r\n    color:#5e5e5e;\r\n    font-weight: bold;\r\n    font-size: 12px;\r\n    text-align: center;\r\n    background-color: #f7f7f7;\r\n  }\r\n  .gwd_gome #gwd_guess_favor .gwd_guess_head {\r\n    height: auto;\r\n    line-height: inherit;\r\n  }\r\n  #gwd_guess_favor ul li{\r\n    height: 88px;\r\n  }\r\n  #gwd_guess_favor ul li.gwd_index0{\r\n    border-bottom: 1px dotted #dbdbdb;\r\n  }\r\n  #gwd_guess_favor .gwd_margin_div{\r\n    height: 6px;\r\n    _line-height: 6px;\r\n    _height:0px !important;\r\n  }\r\n  #gwd_guess_favor .gwd_dp_info{\r\n    height: 53px;\r\n    width: 184px;\r\n    margin: 0 auto;\r\n  }\r\n  #gwd_guess_favor .gwd_dp_info .gwd_dp_img{\r\n    float: left;\r\n    display: inline-block;\r\n    width:50px;\r\n  }\r\n  #gwd_guess_favor .gwd_dp_info .gwd_dp_title{\r\n    display: inline-block;\r\n    width: 130px;\r\n    height: 53px;\r\n    float: right;\r\n    color: #5f5f5f;\r\n    overflow: hidden;\r\n  }\r\n  .gwd_gome #gwd_guess_favor .gwd_dp_info .gwd_dp_title{\r\n    width: 120px;\r\n  }\r\n  #gwd_guess_favor .gwd_dp_des{\r\n    margin-right: 8px;\r\n    float: right;\r\n  }\r\n  #gwd_guess_favor .gwd_rev{\r\n    margin-right: 8px;\r\n    color: #a2a2a2;\r\n    height: 30px;\r\n    display: inline-block;\r\n    line-height: 30px;\r\n  }\r\n  .gwd_rev_num{\r\n    color:#c99d8b;\r\n  }\r\n  #gwd_guess_favor .gwd_dp_info a img{\r\n    width:50px;\r\n    height: 50px;\r\n  }\r\n  #gwd_guess_favor .gwd_price{\r\n    color:#e4393c;\r\n  }\r\n  </style>\r\n</div>'
	},
	function(t, e) {
		t.exports = '<div id="gwd_guess_favor">\r\n  <div class="gwd_guess_head">猜你喜欢:</div>\r\n  <div class="gwd_guess_content">\r\n    <ul class="gwd_guess_list">\r\n      {{each product}}\r\n        <li class="gwd_guess_item gwd_index{{($index==product.length-1)?$index:0}}">\r\n          <div class="gwd_dp_info">\r\n            <a class="gwd_dp_title" href="{{$value.url}}" target="_blank" title="{{$value.title}}">{{$value.title}}</a>\r\n          </div>\r\n          <div class="gwd_dp_des">\r\n            <a class="gwd_price" href="{{$value.url}}" target="_blank">{{$value.price}}</a>\r\n            <br/>\r\n            <a class="gwd_rev" href="{{$value.url}}" target="_blank">\r\n              <span>已有</span>\r\n              <span class="gwd_rev_num">{{$value.rev_num}}</span>\r\n              <span>人评价</span>\r\n            </a>\r\n          </div>\r\n          <div style=\'clear: both;\'></div>\r\n        </li>\r\n      {{/each}}\r\n    </ul>\r\n  </div>\r\n  <style type="text/css">\r\n  /*猜你喜欢模块*/\r\n  #gwd_guess_favor{\r\n    color: #5f5f5f;\r\n  }\r\n  .gwd_suning #gwd_guess_favor{\r\n    width:340px;\r\n    margin:20px 30px;\r\n  }\r\n  .gwd_51buy #gwd_guess_favor{\r\n    margin: 10px 10px;\r\n  }\r\n  #gwd_guess_favor .gwd_dp_title{\r\n    color: #5f5f5f;\r\n  }\r\n  #gwd_guess_favor .gwd_guess_head{\r\n    height: 35px;\r\n    line-height: 35px;\r\n    color:#5e5e5e;\r\n    font-weight: bold;\r\n    font-size: 15px;\r\n  }\r\n  #gwd_guess_favor .gwd_guess_item{\r\n    padding: 5px 0;\r\n    border-top:1px solid #eee;\r\n  }\r\n  #gwd_guess_favor .gwd_guess_item .gwd_dp_info{\r\n    width: 250px;\r\n    float: left;\r\n  }\r\n  #gwd_guess_favor .gwd_guess_item .gwd_dp_des{\r\n    float: right;\r\n    width: 90px;\r\n  }\r\n  #gwd_guess_favor .gwd_guess_item .gwd_dp_des .gwd_price{\r\n    color:#c40000;\r\n    font-size: 15px;\r\n  }\r\n  #gwd_guess_favor .gwd_guess_item .gwd_rev_num{\r\n    color: #cfa492;\r\n  }\r\n  #gwd_guess_favor .gwd_guess_item .gwd_rev{\r\n    color: #a4a8b1;\r\n  }\r\n  </style>\r\n</div>'
	},
	function(t, e) {
		t.exports = '<a id="gwd_mobile_price" href="{{url}}" target="_blank" title="点击跳转至手机版页面，以专享价购买">\r\n  <span class="gwd_mprice_title">点此专享价购买</span>\r\n  <span class="gwd_mprice_num">{{price}}</span>\r\n  <style type="text/css">\r\n    a#gwd_mobile_price {\r\n      width: 132px;\r\n      display: inline;\r\n      margin-left: 5px;\r\n      text-decoration: none;\r\n      cursor: pointer;\r\n    }\r\n    span.gwd_mprice_title {\r\n      display: inline-block;\r\n      width: 94px;\r\n      background-color: #568cdf;\r\n      line-height: 16px;\r\n      color: #fff;\r\n      text-align: center;\r\n    }\r\n    span.gwd_mprice_title:hover{\r\n      background-color: #3071c6;\r\n      text-decoration: none;\r\n    }\r\n    span.gwd_mprice_num {\r\n      color: #e4393c;\r\n      display: inline-block;\r\n      margin-left: 5px;\r\n      text-align: center;\r\n      font-size: 14px;\r\n    }\r\n  </style>\r\n</a>'
	},
	function(t, e, n) {
		var i;
		(function(a) {
			"use strict";
			i = function() {
				function t(n) {
					if (_(y[n]).is(":visible") && e()) h = n, o(g);
					else {
						if (x++, 10 === x) return;
						setTimeout(function() {
							t(n)
						}, 1e3)
					}
				}

				function e() {
					var t = !1,
						e = a.site;
					switch (e) {
						case "360buy":
							t = !0;
							break;
						case "dangdang":
							t = !0;
							break;
						case "suning":
							t = _("#qrCode").text().indexOf("手机购买") > -1 ? !0 : !1;
							break;
						case "51buy":
							t = _("#sea_desc").text().indexOf("手机专享价") > -1 ? !0 : !1;
							break;
						case "yihaodian":
							t = _("#productSubName").text().indexOf("手机端下单") > -1 ? !0 : !1
					}
					return t
				}

				function i() {
					for (var e in y) a.site === e && t(e);
					return 0 === x ? !1 : void 0
				}

				function o(t) {
					var e = document.location.href;
					v.get(f + "/go/mobile?url=" + encodeURIComponent(e)).done(function(t) {
						"" !== t.url && 1 === t.status && (r(t.url), s(t.url))
					})
				}

				function r(t) {
					if (t && "360buy" == h) {
						var e = p(),
							i = n(64);
						_("#summary-price .dd").append(b.compile(i)({
							url: c(t),
							price: e
						})), _("#gwd_mobile_price").on("click", function() {
							n(17)("click:mobile_price_360buy")
						})
					}
				}

				function s(t) {
					if (t) {
						var e = p(),
							n = "购物党将带您前往手机版页面，以专享价购买商品",
							i = z[h];
						"dangdang" == h || "suning" == h || "360buy" == h ? _(C[h]).after(b.compile(i)({
							url: c(t),
							price: e,
							title: n
						})) : _(C[h]).before(b.compile(i)({
							url: c(t),
							price: e,
							title: n
						})), d()
					}
				}

				function l() {
					return "360buy" == a.site ? !0 : "ActiveXObject" in window ? !1 : !0
				}

				function d() {
					var t = "";
					_("#bjd_m_price").on("mouseenter", function() {
						t = _(this).css("color"), _(this).css("color", "#003399")
					}).on("mouseleave", function() {
						_(this).css("color", t)
					}), _("#bjd_m_price").on("click", function() {
						n(17)("click:mobile_price")
					})
				}

				function c(t) {
					return "http://m.gwdang.com/union/go?site_id=" + u.site_id + "&target_url=" + t + "&union=" + g + "&column=zhuanxiang_" + u.now_dp_id
				}

				function p() {
					var t = 0;
					if ("360buy" == h && (t = _(k[h]).text()), "dangdang" == h && (t = _(k[h]).text()), "yihaodian" == h) {
						var e = _("#productSubName").text().match(/([0-9.]+)元/);
						e && (t = "¥" + e[1])
					}
					if ("51buy" == h) {
						var e = _("#sea_desc").text().match(/专享价([0-9.]+)/);
						e && (t = "¥" + e[1])
					}
					return t
				}
				var h, u, g, m = "https:" === location.protocol ? "https:" : "http:",
					f = m + "//m.gwdang.com",
					w = {},
					_ = n(12),
					v = n(16),
					b = n(13),
					x = 0,
					y = {
						"360buy": "#prom-mbuy .mob-buy",
						yihaodian: "#productSubName",
						dangdang: "#mobile_exclusive_price",
						suning: "#qrCode",
						"51buy": "#sea_desc"
					},
					k = {
						"360buy": "#prom-mbuy .J-m-price",
						dangdang: "#mobile_price"
					},
					z = {
						"360buy": '<a id="bjd_m_price" href="{{url}}" target="_blank" title="{{title}}"style="text-decoration:underline;color:#005aa0;">无需扫码，电脑上也可享受手机优惠价!</a>',
						yihaodian: '<a id="bjd_m_price" href="{{url}}" target="_blank" title="{{title}}"style="text-decoration:underline;color:#06c;background-color: #fff4f2;display: block;padding-left: 10px;height: 26px;line-height: 26px;font-size: 13px;">手机专享价{{price}}，立即前往购买</a>',
						dangdang: '<a id="bjd_m_price" href="{{url}}" target="_blank" title="{{title}}"style="text-decoration:underline;color:#005aa0;">无需扫码，电脑上也可享受手机优惠价!</a>',
						suning: '<a id="bjd_m_price" href="{{url}}" target="_blank" title="{{title}}"style="text-decoration:underline;float:right;position:absolute;right:15px;width:110px;color: #fff;">前往手机版页面购买</a>',
						"51buy": '<a id="bjd_m_price" href="{{url}}" target="_blank" title="{{title}}"style="text-decoration:underline;color:#06c;display: block;height: 26px;line-height: 26px;font-size: 13px;">手机专享价{{price}}，立即前往购买</a>'
					},
					C = {
						"360buy": ".J-prom-mbuy",
						yihaodian: "#gwd_promo_active_yihaodian",
						dangdang: "#mobile_exclusive_price",
						suning: "#qrCode .qrcode-main-img",
						"51buy": "#gwd_promo_active_51buy"
					};
				return w.init = function(t, e) {
					g = e, u = t, l() && i()
				}, w
			}.call(e, n, e, t), !(void 0 !== i && (t.exports = i))
		}).call(e, n(1))
	},
	function(t, e, n) {
		var i;
		(function(a) {
			"use strict";
			i = function() {
				function t(t) {
					if (0 != a.show_promo && ("maxthon" !== a.from_device || !(location.host.indexOf("taobao") > -1 || location.host.indexOf("tmall") > -1))) {
						var e = a.save_promo_len,
							n = [];
						if (t.total > 0 && 3 > e) {
							try {
								for (var i = t.products, o = a.href.indexOf("tmall.com") >= 0 ? "tmall" : a.site, s = r("#gwd_promo_brand_layout_" + o).length ? r("#gwd_promo_brand_layout_" + o).empty() : r("<div>", {
									id: "gwd_promo_brand_layout_" + o,
									"class": "gwd_promo_brand_layout"
								}), l = 0; l < i.length && !(l >= 3 - e); l++) {
									n.push(i[l].promo_id);
									var p = r("<p>", {
											"class": "gwd-promo-brand-p",
											promoid: i[l].promo_id
										}),
										h = "brand" == t._frome ? i[l].site_name + ' "' + i[l].title + '" ' + i[l].keywords + " " + i[l].end_time.split(" ")[0] + "结束" : i[l].a_title;
									p.append(r("<a>", {
										"class": "gwd-promo-brand-click",
										href: i[l].url,
										target: "_blank",
										title: h,
										promoid: i[l].promo_id
									}).append(r("<span>", {
										"class": "gwd-site-name",
										style: i[l].site_name.length >= 5 ? "padding-right:10px;" : "",
										promoid: i[l].promo_id
									}).text(i[l].site_name).append(r("<b>", {
										"class": "gwd-site-name-right"
									}).text("："))).append(r("<span>", {
										"class": "gwd-promo-keywords",
										promoid: i[l].promo_id
									}).text(i[l].keywords)).append(r("<span>", {
										"class": "gwd-promo-title",
										promoid: i[l].promo_id
									}).text(i[l].title))), s.append(p)
								}
							} catch (u) {
								if (a.debug) throw u
							}
							r(".gwd-promo-brand-p").on("click", function(t) {
								return d("click:mini:promo:" + t.currentTarget.getAttribute("promoid")), c.log("嵌入促销活动点击"), !0
							}), c.log("嵌入促销活动展现"), d("track:mini:promo:" + n.join(","))
						}
					}
				}

				function e(t) {
					if (0 != a.show_promo && t.length > 0) try {
						for (var e = t.length > 3 ? 3 : t.length, n = 0; e > n; n++) r("#gwd_promo_brand_layout_" + (a.href.indexOf("tmall") >= 0 ? "tmall" : a.site) + " p") && r("#gwd_promo_brand_layout_" + (a.href.indexOf("tmall") >= 0 ? "tmall" : a.site) + " p").eq(2 - n).remove();
						for (var i = t, o = r("#gwd_promo_active_" + (a.href.indexOf("tmall") >= 0 ? "tmall" : a.site)).empty(), n = 0; n < i.length && !(n >= 3); n++) {
							var s = r("<p>", {
								"class": "gwd-promo-active-p"
							});
							s.append(r("<a>", {
								"class": "gwd-promo-active-store promo_font_color",
								href: i[n].store_url,
								target: "_blank",
								title: i[n].store_name
							}).text(i[n].store_name.substr(0, 4)).append(r("<span>", {
								"class": "gwd-site-name-right"
							}).text("："))).append(r("<span>", {
								"class": "gwd-promo-keywords"
							}).text("促销")).append(r("<a>", {
								"class": "gwd-promo-active-title promo_font_color",
								href: i[n].url,
								target: "_blank",
								title: i[n].title
							}).text(i[n].title)), o.append(s)
						}
					} catch (l) {
						if (a.debug) throw l
					}
				}

				function i(e, n) {
					var i = null;
					e.total > 0 ? (e._frome = "brand", i = e) : i = null != n ? n : {
						total: 0,
						products: []
					}, t(i), o(e.brand_id, e.brand), l.autoAddFavor()
				}

				function o(t, e) {
					t && !a.dpIsBook && (r("#gwd-brand-subscribe-btn").attr({
						brandId: t,
						actionType: 1
					}), r("#gwd-brand-subscribe-btn").on("click", function() {
						var i = r("#gwd-brand-subscribe-btn"),
							o = {},
							s = "品牌特卖提前知道";
						1 == i.attr("actionType") ? (o.loadMsg = "正在关注...", o.action = "add") : (o.loadMsg = "取消关注...", o.action = "delete");
						var l = i.find(".gwd-brand-subscribe-text").eq(0),
							d = i.find(".gwd-bg").eq(0);
						l.text(o.loadMsg);
						var c = n(16);
						c.get(a.c_server + "/brwext/brand_subscribe?brand_id=" + t + "&action=" + o.action).done(function(t) {
							var n = t && t.code;
							if (0 == n) window.location.href = a.c_server + "/user/login?from_url=" + encodeURIComponent(a.href);
							else if (1 == n || 3 == n) {
								var r = "",
									c = 1,
									p = "gwd-brand-subscribe-icon-blue";
								"add" == o.action ? (r = 1 == n ? "关注成功" : "已关注", c = 0, p = "gwd-brand-subscribe-icon-red", s = "“" + (e ? e : "该品牌") + "”的特卖活动会第一时间提醒你") : "delete" == o.action && (r = 1 == n ? "关注此品牌" : "操作失败", c = 1);
								var h;
								clearTimeout(h), h = setTimeout(function() {
									i.attr("actionType", c), l.text(r), d.attr("class", "gwd-bg " + p)
								}, 500)
							} else i.attr("class", "gwd-brand-subscribe").attr("actionType", 1), l.text("关注此品牌");
							i.attr("title", s)
						})
					}), r("#gwd-brand-subscribe-box").show())
				}
				var r = n(12),
					s = {},
					l = n(57),
					d = n(17),
					c = n(19),
					p = n(16);
				return s.getPromoData = function(t) {
					var e = {
						_frome: "active",
						total: 0,
						products: []
					};
					if ("undefined" != typeof t.b2c.product && t.b2c.product.length > 0) {
						for (var n = t.b2c.product, i = 0; i < n.length; i++) {
							var a = n[i].dp_id.split("-")[1];
							if (("undefined" == typeof t.now.site_id || a != t.now.site_id) && n[i].promo.length > 0)
								for (var o = n[i].promo, r = 0; r < o.length; r++) {
									var s = {
										site_name: n[i].site_name,
										url: n[i].url,
										title: o[r].desc,
										end_time: "",
										brand: o[r].desc.length > 21 ? o[r].desc.substr(0, 20) : o[r].desc,
										keywords: "￥" + n[i].price,
										a_title: n[i].title
									};
									e.products.push(s)
								}
						}
						e.total = e.products.length
					}
					return e.products.length > 0 ? e : null
				}, s.addPromo = function(e) {
					if (null == a.save_promo_data) {
						var n = a.dpIsBook,
							o = a.save_dp_query,
							s = "" != o.now.now_dp_id ? o.now.now_dp_id : o.exact_arr.taobao_same_id,
							l = o.now.class_id,
							d = o.exact_arr.sbrand,
							c = o.exact_arr.brand_id,
							h = o.exact_arr.taobao_class_id;
						if (null == n || "" == n) {
							e = null;
							var u = 0,
								g = "" == a.collectInfo.title ? a.dp.name : a.collectInfo.title;
							p.get(a.server + "/brwext/promo_brand?pg=1&ps=30&order=" + u + "&tb_class=" + h + "&class_id=" + l + "&dp_id=" + s + "&title=" + encodeURIComponent(g) + "&url=" + encodeURIComponent(window.location.href) + "&union=" + encodeURIComponent(a.union) + "&sbrand=" + d + "&brand_id=" + c).done(function(t) {
								0 == t.length && r("#gwd-brand-subscribe-btn").hide(), i(t, e)
							}).fail(function() {
								r("#gwd-brand-subscribe-btn").hide(), null != e && t(e)
							})
						}
					}
				}, s.addPromoActive = function() {
					var t = n(67)();
					t && p.get(t).done(function(t) {
						a.save_promo_len = t.length, e(t)
					})
				}, s.insertPromoShowList = function(t) {
					var e = this;
					if (null != t && null != t.promos && 0 != t.promos.length) {
						r("#gwdang-main").append(r("<div>", {
							id: "gwd_promo_show_list_div",
							"class": "gwd_small_tab"
						}).append(r("<div>", {
							"class": "pointer-up"
						}).html("<!--[if IE 6]>◆<![endif]-->")).append(r("<div>", {
							id: "gwd_promo_show_list_content"
						}).append(r("<ul>", {
							id: "gwd_promo_show_list_ul",
							style: "padding:0px;"
						})))), r("#gwd_promo_show_list_div").on("click", function(t) {
							d("click:main:cuxiao"), c.log("主工具栏促销点击")
						});
						for (var n = 0; n < t.promos.length && 5 > n; ++n) r("#gwd_promo_show_list_ul").append(r("<li>", {}).append(r("<a>", {
							title: t.promos[n].title + " 截止:" + t.promos[n].end_time.split(" ")[0],
							href: t.promos[n].url,
							target: "_blank"
						}).html(t.promos[n].title.replace(/(\d+)/g, "<span class='gwd-red'>$1</span>"))).append(r("<span>", {
							"class": "promo_span"
						}).text("截止:" + t.promos[n].end_time.match(/\d{4}-([0-9-]{5})/)[1])));
						r("#gwd_promo_show_list_ul").append(r("<li>", {
							style: "text-align: right;border: none;"
						}).append(r("<a>", {
							title: "查看全部促销",
							href: t.url,
							"class": "show_all_promo",
							target: "_blank"
						}).text("查看全部(" + t.num + ")"))), r("#gwd_promo_btn").mouseover(function() {
							var t = this;
							e.timer_show_div = setTimeout(function() {
								r(".gwd_small_tab").hide(), r(".panel").hide(), r("#gwd_promo_show_list_div").css("left", r(t).offset().left + "px").show()
							}, 300), clearTimeout(e.timer_hide_div), d("hover:main:cuxiao"), c.log("主工具栏促销鼠标悬浮")
						}), r("#gwd_promo_btn").mouseout(function() {
							e.timer_hide_div = setTimeout(function() {
								r("#gwd_promo_show_list_div").hide()
							}, 300), clearTimeout(e.timer_show_div)
						}), r("#gwd_promo_btn").click(function(t) {
							return "block" == r("#gwd_promo_show_list_div").css("display") ? r("#gwd_promo_show_list_div").hide() : (r(".gwd_small_tab").hide(), r(".panel").hide(), r("#gwd_promo_show_list_div").css("left", r(this).offset().left + "px").show()), t.stopPropagation(), !1
						}), r("#gwd_promo_show_list_div").mouseenter(function() {
							clearTimeout(e.timer_hide_div)
						}), r("#gwd_promo_show_list_div").mouseleave(function() {
							e.timer_hide_div = setTimeout(function() {
								r("#gwd_promo_show_list_div").hide()
							}, 300)
						}), r("#gwd_promo_show_list_div").click(function() {
							r(".gwd_small_tab").hide()
						})
					}
				}, s
			}.call(e, n, e, t), !(void 0 !== i && (t.exports = i))
		}).call(e, n(1))
	},
	function(t, e, n) {
		(function(e, i, a) {
			"use strict";
			t.exports = function() {
				var t = n(14);
				if (-1 !== e.inArray(i.site, ["taobao", "tmall", "360buy", "taobao-95095"]) && ("maxthon" !== i.from_device || !(e.inArray("taobao", location.host) > -1 || e.inArray("tmall", location.host) > -1))) {
					var o = "",
						r = "",
						s = "",
						l = "";
					if ("360buy" != i.site) o = t.productPattern[i.site](), r = o.cat_id, s = o.userid;
					else {
						var d = [];
						try {
							for (var c = a("body").attr("class").match(/cat\-\d\-([0-9]+)/g), p = 0; p < c.length; p++) d.push(c[p].match(/\d\-([0-9]+)/)[1]);
							var h = d.join("-")
						} catch (u) {
							h = "670"
						}
						r = "jd:" + h
					}
					l = window.location.href.toString().match(/id=(\d+)/), l = l ? l[1] : "";
					var g = i.zhitongche + "/cgi/promo/" + r + "?user_id=" + s + "&id=" + l + "&method=search_" + i.site + "&union=" + i.union;
					return g
				}
			}
		}).call(e, n(12), n(1), n(12))
	},
	function(t, e, n) {
		var i;
		(function(a, o) {
			"use strict";
			i = function() {
				function t() {
					var t = "",
						e = {
							taobao: "淘宝",
							tmall: "天猫",
							"360buy": "京东商城",
							"51buy": "易迅网",
							suning: "苏宁易购",
							yihaodian: "一号店",
							dangdang: "当当网",
							gome: "国美在线",
							lefeng: "乐蜂网",
							xiu: "走秀网",
							philips: "飞利浦",
							tcl: "TCL商城",
							"e-changhong": "长虹商城",
							konka: "康佳商城",
							hisense: "海信商城",
							ineigo: "爱内购",
							skg: "SKG商城",
							"k-touch": "天语手机官网",
							gionee: "金立",
							oppo: "OPPO",
							gfive: "基伍官方商城",
							vivo: "vivo",
							meilishuo: "美丽说",
							mogujie: "蘑菇街",
							xiaomi: "小米官网",
							lemall: "乐视商城",
							grainger: "固安捷官网",
							piao: "网易电影票",
							163: "网易商城",
							dianping: "点评团",
							nuomi: "百度糯米",
							meituan: "美团",
							bookuu: "博库文具",
							bookschina: "中国图书网",
							1688: "阿里巴巴",
							zol: "中关村商城",
							amazon: "亚马逊",
							tiantian: "天天网",
							womai: "我买网",
							yougou: "优购网",
							vmall: "华为商城",
							paixie: "拍鞋网",
							newegg: "新蛋商城",
							vancl: "凡客诚品"
						};
					try {
						for (var n = a.site, i = ["360buy", "gome", "suning", "taobao", "yihaodian", "womai", "bookschina", "paixie", "bookuu", "tiantian"], o = 0; o < i.length; o++)
							if (n.indexOf(i[o]) > -1) {
								n = i[o];
								break
							}
						t = e[n]
					} catch (r) {
						if (a.debug) throw r
					}
					return "undefined" == typeof t && (t = ""), "淘宝" == t && window.location.host.toString().indexOf("tmall") > -1 && (t = "天猫"), t
				}

				function e(t) {
					var e = a.site;
					b.get(a.server + "/app/price_trend?dp_ids=" + h + "&dp_id=" + u + "&site=" + e + "&days=" + v + "&is_light").done(function(e) {
						e.store && e.store.length && e.store[0].name.length > 7 && e.store[0].name.indexOf("当前") && (e.store[0].name = e.store[0].name.replace("(当前)", "")), t(e)
					}).fail(function() {
						t(!1)
					})
				}

				function i(e) {
					var n;
					try {
						var i = e.match(/data_pricetrend[^\;]+/g);
						if (!i) return;
						i = i[0];
						var o, r, s, l, d = 0,
							c = i.match(/\'[0-9-]+\'\,[0-9.]+/g),
							p = [];
						o = parseFloat(c[0].split(",")[1]), d = parseFloat(c[0].split(",")[1]);
						for (var h = c[0].split(",")[0].replace(/\'/g, "").split("-"), u = h[0], g = h[1], m = h[2], w = 0; w < c.length; w++) {
							var _ = c[w].split(",")[0].replace(/\'/g, ""),
								v = c[w].split(",")[1],
								b = [];
							parseFloat(v) > o && (o = parseFloat(v)), parseFloat(v) < d && (d = parseFloat(v)), w == c.length - 2 && (s = parseFloat(v)), w == c.length - 1 && (r = parseFloat(v));
							var x = Date.parse(new Date(_));
							b.push(x), b.push(v), p.push(b)
						}
						var y = p[p.length - 1][1],
							k = p.length,
							z = function(t) {
								var e = "";
								if ("taobao" == t && (e = f("#J_PromoPriceNum").text(), "" == e && 0 == f("#J_PromoPriceNum").length && (e = f("#J_StrPrice .tb-rmb-num").text())), "tmall" == t && (e = f("#J_DetailMeta #J_PromoPrice span.tm-price").text(), "" == e && (e = f("span.tm-price").text())), "taobao-95095" == t && (e = f("#J_PromoPrice .tm-price").text(), "" == e && (e = f("#J_StrPriceModBox .tm-price").text())), "ai-taobao" == t) {
									if (a.chrome_extension) {
										var n = f(".aitaobao-edetail-header script").text();
										e = /promoPrice":"([\d\.]+)"/.exec(n), e && (e = e[1])
									} else e = window.pageconfig.promoPrice;
									"" != e && e || (e = f(".price-wrap .price-single .price-promo strong").text())
								}
								return e
							},
							C = z(a.site);
						if ("" != C && C) {
							var T = parseFloat(C),
								S = parseFloat(p[p.length - 1][1]);
							T != S && (y = T, p[p.length - 1][1] = T)
						}
						for (var w = k - 1; w > 0; w--)
							if (1e3 * Math.abs(p[w][1] - p[w - 1][1]) < p[w - 1][1]) p[w][1] = p[w - 1][1], r = parseFloat(p[k - 1][1]);
							else {
								if (p[w][0] == p[w - 1][0] + 864e5) continue;
								var j = [p[w][0] - 864e5, p[w - 1][1]];
								p.splice(w, 0, j)
							}
						for (var I = 0, P = p.length, A = p[P - 1][1], E = 20, w = P - 1; w > 0; w--) {
							var L = p[w][1],
								O = (p[w][0] - p[w - 1][0]) / 864e5;
							if (0 != L)
								if (A != L) {
									if (parseFloat(A) > parseFloat(L) && w >= P - E - 1) {
										I = 1;
										break
									}
									if (parseFloat(A) < parseFloat(L)) {
										I = -1;
										break
									}
								} else if (O > 10) break
						}
						l = d + "-" + o, p[p.length - 1][1] = y, n = {
							price_status: I,
							startD: m,
							startM: g,
							startY: u,
							store: [{
								current_price: r,
								data: p,
								last_price: s,
								min_stamp: "0",
								name: t(),
								price_range: l
							}]
						}
					} catch (N) {
						a.debug && console.log(N)
					}
					return n
				}

				function r(t) {
					return parseInt(t) > 999999 ? parseInt(t) : parseFloat(t).toFixed(1)
				}

				function s(t) {
					if ("taobao" != a.site && 0 == t.store.length && (a.hiddenFavorButton = !0), t.store.length > 0) {
						j(), f("#gwdang-trend .price-trend-icon").css("margin-top", "4px"), f("#gwdang-trend .price-trend-icon").show(), f("#gwd_price_history_btn .price-trend-icon").show(), 0 == t.price_status ? (f("#gwdang-trend .price-trend-icon").css("background-position", "-151px 1px"), f("#gwdang-trend-text").css("color", "#ff9000").html("价格平稳")) : 1 == t.price_status ? (f("#gwdang-trend .price-trend-icon").css("background-position", "-128px 1px"), f("#gwdang-trend-text").css("color", "#d80001").html("价格上涨")) : z(t) ? (f("#gwdang-trend .price-trend-icon").css("background-position", "-105px 1px"), f("#gwdang-trend-text").css("color", "#00A66C").html("历史最低")) : (f("#gwdang-trend .price-trend-icon").css("background-position", "-105px 1px"), f("#gwdang-trend-text").css("color", "#00A66C").html("价格下降")), f("#gwdang-trend").show(), f("#gwdang-trend-current-price").html(t.store[0].current_price), f("#gwdang-trend-pri-range").html(t.store[0].price_range);
						for (var e = {
							chart: {
								renderTo: "gwdang-pri-trend-chart",
								type: "line",
								marginRight: 130,
								marginBottom: 25
							},
							credits: {
								enabled: !1
							},
							colors: ["#7cb5ec", "#434348", "#90ed7d", "#f7a35c", "#8085e9", "#f15c80", "#e4d354", "#8085e8", "#8d4653", "#91e8e1"],
							title: {
								text: "商城最近" + v + "天价格趋势",
								x: -20,
								style: {
									color: "#666"
								}
							},
							xAxis: {
								type: "datetime",
								dateTimeLabelFormats: {
									day: "%m-%d",
									week: "%m-%d",
									month: "%m-%d"
								},
								minorGridLineColor: "#dfdfdf"
							},
							yAxis: {
								title: {
									text: ""
								},
								plotLines: [{
									value: 0,
									width: 1,
									color: "#808080"
								}],
								gridLineColor: "#c0d0e0",
								minorGridLineColor: "#dfdfdf",
								tickPixelInterval: 50
							},
							tooltip: {
								xDateFormat: "%Y-%m-%d",
								shared: !0
							},
							plotOptions: {
								series: {
									marker: {
										radius: 3
									},
									shadow: !1
								}
							},
							legend: {
								enabled: !0,
								layout: "vertical",
								align: "right",
								verticalAlign: "top",
								width: 100,
								borderWidth: 0,
								x: -20,
								y: 20
							},
							series: []
						}, n = t.store.length, i = 0; n > i; i++) {
							var r = t.store[i];
							if (e.series[i] = {
								visible: !1,
								name: r.name,
								pointStart: Date.UTC(t.startY, t.startM, t.startD),
								pointInterval: 864e5,
								data: []
							}, 0 == i && (e.series[i].visible = !0), r.data.length > 0) {
								var s = r.data.length,
									l = r.data;
								1e3 * r.min_stamp > parseInt(Date.UTC(t.startY, t.startM, t.startD)) && e.series[i].data.push(null);
								for (var d = 0; s > d; d++) {
									var c = new Array(2);
									c[0] = parseInt(l[d][0]), c[1] = parseFloat(l[d][1]), e.series[i].data.push(c)
								}
							}
						}
						f("#gwdang-pri-trend-chart").css("width", a.width - 300), f("#gwdang-trend-detail .remind").css("left", a.width - 279), f("#" + e.chart.renderTo).length && new o.Chart(e), f("#gwdang-remind-btn").click(function(t) {
							t.preventDefault(), f(".remind-error").hide();
							var e = /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/,
								n = 1,
								i = 0,
								o = f("#gwdang-remind-email").val(),
								r = a.now_dp_id;
							f("#gwdang-pri-notice-im").attr("checked") ? n = 1 : f("#gwdang-pri-notice-li").attr("checked") && (n = 2, i = parseFloat(f("#gwdang-pri-limit").val())), e.test(o) ? b.get(a.server + "/brwext/remind?action=add&dp_id=" + r + "&email=" + encodeURIComponent(o) + "&type=" + n + "&price=" + i).done(function(t) {
								1 == t.code ? f("#gwdang-remind-error2").show() : 2 == t.code ? f("#gwdang-remind-error3").show() : f("#gwdang-remind-error1").show()
							}) : f("#gwdang-remind-error0").show()
						}), "" != a.email && f("#gwdang-remind-email").val(a.email), (a.IE6 || a.IE7) && "amazon" == a.site && f("#gwdang-remind-email").height(28)
					}
				}

				function l(t, e) {
					try {
						if (a.save_dp_query) {
							var n = [];
							a.save_dp_query.b2c && a.save_dp_query.b2c.store && (n = a.save_dp_query.b2c.store);
							var i, o = f("#trend_detail_body_ul"),
								s = n.length;
							for (i = 0; i < n.length && e > i; ++i) {
								var l = n[i].product && n[i].product[0] || n[i],
									d = i ? "#999 !important" : "#ff7a60 !important",
									c = 0;
								try {
									var p = l.dp_id.split("-");
									c = p[p.length - 1]
								} catch (h) {
									if (a.debug) throw h
								}
								var u = [1, 103, 108, 123, 124, 126, 129, 134, 136, 14, 141, 15, 167, 168, 19, 2, 21, 25, 26, 28, 3, 31, 34, 35, 41, 6, 66, 7, 86, 93, 9],
									g = u.indexOf(Number(c)) > -1 ? ".png" : ".ico";
								a.IE6 && (g = ".ico"), o.append(f("<div>", {}).append(f("<img>", {
									src: a.s_server + "/images/favicon/" + c + g
								})).append(f("<a>", {
									target: "_blank",
									href: l.url,
									title: l.site_name,
									style: "color:" + d
								}).text("¥" + r(l.price.replace(/,/g, "")))))
							}
							if (0 == i) {
								var m = a.save_dp_query.now.now_dp_id.split("-"),
									_ = document.location.href,
									v = m.length;
								1 != m.length && (o.append(f("<div>", {}).append(f("<img>", {
									src: a.s_server + "/images/favicon/" + m[v - 1] + ".ico"
								})).append(f("<a>", {
									target: "_blank",
									href: w + "?site_id=3&target_url=" + encodeURI(_) + "&union=" + a.union + "&column=search",
									title: t.store && t.store.length && t.store[0].name,
									style: "color:red"
								}).text("¥" + r(t.store && t.store.length && t.store[0].current_price.replace(/,/g, ""))))), s++)
							}
							i != e && (o.append(f("<div>", {}).append(f("<img>", {
								src: a.s_server + "/images/favicon/123" + (a.IE6 ? ".ico" : ".png")
							})).append(f("<a>", {
								target: "_blank",
								href: "http://s.taobao.com/search?q=" + encodeURIComponent(a.save_dp_query.keyword),
								title: "淘宝相似款",
								style: "color:#333"
							}).text("淘宝相似款"))), s++), o.append(f("<div>", {
								"class": "gwd_wishlist_see_all"
							}).append(f("<a>", {
								style: "color: #666;margin-left:0px;",
								title: "查看所有商城",
								target: "_blank",
								href: a.c_server + "/dp" + a.save_dp_query.collectInfo.dp_id
							}).text("全部(" + s + ")")))
						}
					} catch (h) {
						if (a.debug) throw h
					}
				}

				function d(e, n, i) {
					if (e.store.length > 0 && f("#gwd_wishlist_trend_detail").length > 0) {
						0 == e.price_status ? (f("#gwd_price_history_btn .price-trend-icon").addClass("price-trend-icon-solw"), f("#gwd_price_history_btn span").css("color", "#ff9000").html("价格平稳")) : 1 == e.price_status ? (f("#gwd_price_history_btn .price-trend-icon").addClass("price-trend-icon-up"), f("#gwd_price_history_btn span").css("color", "#d80001").html("价格上涨")) : z(e) ? (f("#gwd_price_history_btn .price-trend-icon").addClass("price-trend-icon-down"), f("#gwd_price_history_btn span").css("color", "#00A66C").html("历史最低")) : (f("#gwd_price_history_btn .price-trend-icon").addClass("price-trend-icon-down"), f("#gwd_price_history_btn span").css("color", "#00A66C").html("价格下降")), f(".price-trend-icon").show();
						var r = {
								chart: {
									renderTo: "gwd_wishlist_trend_detail_chart",
									width: i.width,
									height: i.height,
									type: "line"
								},
								credits: {
									enabled: !1
								},
								colors: ["#57b2ec"],
								title: {
									text: t() + " 近180天价格趋势",
									style: {
										color: "#666",
										fontSize: n
									}
								},
								xAxis: {
									type: "datetime",
									dateTimeLabelFormats: {
										day: "%m-%d",
										week: "%m-%d",
										month: "%m-%d"
									},
									minorGridLineColor: "#dfdfdf",
									labels: {
										style: {
											color: "#999"
										}
									}
								},
								yAxis: {
									title: {
										text: ""
									},
									plotLines: [{
										value: 0,
										width: 1,
										color: "#808080"
									}],
									gridLineColor: "#c0d0e0",
									minorGridLineColor: "#dfdfdf",
									tickPixelInterval: 50,
									labels: {
										style: {
											color: "#999"
										}
									}
								},
								tooltip: {
									xDateFormat: "%Y-%m-%d",
									shared: !0
								},
								plotOptions: {
									series: {
										marker: {
											radius: 1
										},
										shadow: !1,
										states: {
											hover: {
												lineWidth: 2
											}
										}
									}
								},
								legend: {
									enabled: !1,
									layout: "vertical",
									align: "right",
									verticalAlign: "top",
									borderWidth: 0,
									y: 20
								},
								series: [{
									visible: !0,
									pointStart: Date.UTC(e.startY, e.startM, e.startD),
									pointInterval: 864e5,
									data: []
								}]
							},
							s = e.store[0];
						if (r.series[0].name = s.name, s.data.length > 0) {
							var l = s.price_range.split("-"),
								d = parseFloat(l[0].replace(/,/g, "")),
								c = parseFloat(l[1].replace(/,/g, "")),
								p = s.data.length,
								h = s.data;
							1e3 * s.min_stamp > parseInt(Date.UTC(e.startY, e.startM, e.startD)) && r.series[0].data.push(null);
							for (var u, g, m = 0; p > m; m++) {
								var w = {};
								w.x = parseInt(h[m][0]), w.y = parseFloat(h[m][1]), w.y === c && (u = m), w.y === d && (g = m), r.series[0].data.push(w)
							}
							u && (r.series[0].data[u].marker = {
								fillColor: "#E4393C",
								lineWidth: 4,
								lineColor: "#E4393C"
							}), g && (r.series[0].data[g].marker = {
								fillColor: "#00A66C",
								lineWidth: 4,
								lineColor: "#00A66C"
							})
						}
						f("#" + r.chart.renderTo).length && new o.Chart(r), f("#gwd_wishlist_trend_detail_info").html('<span class="gwd_min_price">最低价：<span class="gwd_price">￥' + d + '</span></span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="gwd_max_price">最高价：<span class="gwd_price">￥' + c + "</span></span>"), f("#gwd_price_history_btn").show(), f("#gwd_price_history_btn + div").show()
					} else "maxthon" === a.from_device && f("#gwd_wishlist_div").css("width", "140px"), f("#gwd_wishlist_trend_detail").hide(), f("#gwd_price_history_btn").hide(), f("#gwd_price_history_btn + div").hide(), f("#gwd_wishlist_btn").css("border-left", "1px solid #ddd")
				}

				function c(t) {
					p || (p = !0, l(t, 4), d(t, "18px", {
						width: 400,
						height: 200
					}))
				}
				var p, h, u, g, m = {},
					f = n(12),
					w = a.go_union ? a.go_union : "http://u.gwdang.com/union/go",
					_ = n(57),
					v = 180,
					b = n(16),
					x = ["tmall.hk", "wanggou.com", "lvyoumall.com", "douban.com"],
					y = function() {
						var t = window.location.host.toString();
						for (var e in x)
							if (t.indexOf(x[e]) > 0) return "maxthon" === a.from_device && f("#gwd_wishlist_div").css("width", "140px"), f("#gwd_wishlist_trend_detail").hide(), f("#gwd_price_history_btn").hide(), f("#gwd_wishlist_btn").css("border-left", "1px solid #ddd"), !0;
						return !1
					},
					k = function(t) {
						try {
							("top" == g || "right" == g) && ("top" == g && (s(t), a.fixWidth()), c(t)), "bottom" == g && (I(t), c(t), a.autoFixWidth()), n(70).trendUpdate()
						} catch (e) {
							if (a.debug) throw e
						}
					},
					z = function(t) {
						try {
							var e = parseInt(t.store[0].current_price.replace(",", "")),
								n = parseInt(t.store[0].price_range.split("-", 1)[0].replace(",", ""));
							return e == n ? !0 : !1
						} catch (i) {
							if (a.debug) throw i
						}
					},
					C = function(t) {
						function n(t) {
							if (o >= 6) return t(!1);
							var e = f("#gwd_myDiv").text();
							e ? t(e) : (o++, setTimeout(function() {
								n(t)
							}, 1e3))
						}
						var o = 0;
						("taobao" === a.site || "tmall" === a.site || "taobao-95095" === a.site) && a.enable_cors && ("withCredentials" in new XMLHttpRequest || "undefined" != typeof XDomainRequest) && S(function(n) {
							n ? t(n) : e(function(e) {
								t(e)
							})
						}), "ai-taobao" === a.site || "taobao" === a.site || "tmall" === a.site || "amazon" === a.site || "taobao-95095" === a.site ? n(function(n) {
							if (n) {
								if ("amazon" === a.site) {
									var o = T(n);
									o ? t(o) : e(function(e) {
										t(e)
									})
								}
								if ("taobao" === a.site || "tmall" === a.site || "ai-taobao" === a.site || "taobao-95095" === a.site) {
									var r = i(n);
									r ? t(r) : e(function(e) {
										t(e)
									})
								}
							} else e(function(e) {
								t(e)
							})
						}) : e(function(e) {
							t(e)
						})
					},
					T = function(t) {
						function e(t) {
							for (var e = window.JSON.parse(t), n = e.data.csv[0], i = e.data.domainId, a = 5 != i ? 100 : 1, o = [], r = n.length, s = 0; r > s; s++)
								if (s % 2 == 0) {
									var l = new Date(6e4 * (n[s] + 480) + 129384e7);
									n[s] = Date.parse(l);
									var d = n[s] + ":" + parseFloat(n[s + 1]) / a,
										c = n[s] - 14200632e5; - 1 != n[s + 1] && c > 0 && o.push(d)
								}
							var p = o.join("-");
							return p
						}
						var n = e(t);
						if (n && "" != n) {
							for (var i, a, o, r, s, l = n.split("-"), d = l.length, c = -1, p = [], h = 0; d > h; h++) {
								var u, g = [];
								u = l[h].split(":"), u[1] = parseFloat(u[1]);
								var m = "";
								m = d > h + 1 ? parseInt(l[h + 1].split(":")[0]) - 18e6 : Date.parse(new Date), 0 === h && (s = u[0], r = parseFloat(u[1])), parseFloat(u[1]) < r && (r = parseFloat(u[1])), parseFloat(u[1]) > c && (c = parseFloat(u[1])), g = [m, u[1]], p.push(u), (1 == d || d - 1 > h) && p.push(g)
							}
							o = new Date(parseInt(s)).getFullYear(), a = new Date(parseInt(s)).getMonth(), i = new Date(parseInt(s)).getDate();
							for (var f = 0, w = p.length, _ = parseFloat(p[w - 1][1]), v = 20, h = w - 1; h > 0; h--) {
								var b = parseFloat(p[h][1]),
									x = (parseFloat(p[h][0]) - parseFloat(p[h - 1][0])) / 864e5;
								if (0 !== b)
									if (_ != b) {
										if (parseFloat(_) > parseFloat(b) && h >= w - v - 1) {
											f = 1;
											break
										}
										if (parseFloat(_) < parseFloat(b)) {
											f = -1;
											break
										}
									} else if (x > 10) break
							}
							var y = r + "-" + c,
								k = {
									price_status: f,
									startD: i,
									startM: a,
									startY: o,
									store: [{
										current_price: _,
										data: p,
										last_price: r,
										min_stamp: "0",
										name: "亚马逊",
										price_range: y
									}]
								};
							return k
						}
					},
					S = function(t) {
						var e = location.href.match(/[&?]id=([0-9]+)/) || location.href.match(/\/([0-9]+)\.htm/);
						if (!e || !e[1]) return t(!1);
						e = e[1];
						var n = {
							url: "http://s.etao.com/detail/" + e + ".html",
							success: function(e) {
								t(i(e))
							},
							error: function() {
								t(!1)
							}
						};
						a.enable_cors && (n.xhrFields = {
							withCredentials: !0
						}), f.ajax(n)
					},
					j = function() {
						var t = document.location.host,
							e = "&yen;",
							n = {
								com: "$",
								"co.uk": "£",
								de: "EUR",
								"co.jp": "&yen;",
								fr: "EUR",
								ca: "CDN$",
								cn: "&yen;",
								it: "EUR",
								es: "EUR"
							};
						for (var i in n) t.indexOf(i) > -1 && "amazon" === a.site && (e = n[i]);
						if (f("#gwdang-trend-detail").empty().append(f("<div>", {
							"class": "panel-wrap"
						}).append(f("<div>", {
							"class": "chart",
							id: "gwdang-pri-trend-chart",
							style: "width:700px; height:240px"
						})).append(f("<div>", {
							"class": "remind",
							style: "padding:15px 0 0 15px;width:auto;background-color:#ffffff;color:#000000"
						}).append(f("<div>", {
							"class": "recom-title"
						}).append(f("<h2>").append("当前价格: " + e).append(f("<span>", {
							"class": "current-price",
							id: "gwdang-trend-current-price"
						}))).append(f("<p>").append("历史价格: " + e).append(f("<span>", {
							id: "gwdang-trend-pri-range"
						})))).append(f("<h1>", {
							style: "padding:0;margin:0;"
						}).text("降价提醒")).append(f("<div>").append(f("<input>", {
							type: "radio",
							name: "gwdang-notice[]",
							id: "gwdang-pri-notice-im",
							style: "border:0"
						}).prop("checked", "true")).append(f("<label>").text("一旦商品降价我们将发邮件通知您"))).append(f("<div>").append(f("<input>", {
							type: "radio",
							name: "gwdang-notice[]",
							id: "gwdang-pri-notice-li",
							style: "border:0"
						})).append(f("<label>").append("价格降到&nbsp;&nbsp;" + e).append(f("<input>", {
							type: "text",
							id: "gwdang-pri-limit"
						})).append("元&nbsp;&nbsp;以下提醒您"))).append(f("<div>", {
							"class": "email"
						}).append(f("<input>", {
							type: "text",
							style: "width:185px; line-height:28px; border-right:1px solid #1290dd;float:left;margin:0;box-sizing:border-box;height:28px;*height:26px;*line-height:26px;",
							id: "gwdang-remind-email",
							value: "请输入邮箱地址"
						}).focus(function() {
							"请输入邮箱地址" == f(this).val() && f(this).val("")
						})).append(f("<a>", {
							id: "gwdang-remind-btn",
							href: "javascript:",
							target: "_self",
							style: "float:left;background:#1290dd;margin:0;"
						}).text("提交"))).append(f("<div>", {
							"class": "notice",
							style: "clear:both;"
						}).append(f("<span>", {
							"class": "remind-error",
							id: "gwdang-remind-error0",
							style: "display:none"
						}).text("邮箱地址错误，再检查一下格式吧 :)")).append(f("<span>", {
							"class": "remind-error",
							id: "gwdang-remind-error1",
							style: "display:none"
						}).text("添加降价提醒失败，稍后再试试吧 :)")).append(f("<span>", {
							"class": "remind-error",
							id: "gwdang-remind-error2",
							style: "display:none"
						}).text("添加成功! 请及时查收降价提醒邮件 :)")).append(f("<span>", {
							"class": "remind-error",
							id: "gwdang-remind-error3",
							style: "display:none"
						}).text("您已经添加过此商品啦 :)"))))).append(f("<div>", {
							"class": "panel-shadow"
						})), "amazon" == a.site) {
							var o = window.location && window.location.host && window.location.host.indexOf("amazon.com") >= 0 || !1;
							o && f("#gwdang-notifier .remind,#gwdang-notifier .panel-wrap,#gwdang-notifier .chart").addClass("fix-amazon-com")
						}
					},
					I = function(t) {
						if (t && t.store.length > 0) {
							0 == t.price_status ? (f(".gwd-trend-icon").addClass("gwd-trend-stable"), f(".gwd-trend p").addClass("gwd-stable").find("b").text("价格平稳")) : 1 == t.price_status ? (f(".gwd-trend-icon").addClass("gwd-trend-up"), f(".gwd-trend p").addClass("gwd-red").find("b").text("价格上涨")) : z(t) ? (f(".gwd-trend-icon").addClass("gwd-trend-down"), f(".gwd-trend p").addClass("gwd-green").find("b").text("历史最低")) : (f(".gwd-trend-icon").addClass("gwd-trend-down"), f(".gwd-trend p").addClass("gwd-green").find("b").text("价格下降"));
							for (var e = {
								chart: {
									renderTo: "gwd-trend-chart",
									type: "line",
									style: {
										margin: "1px",
										height: "250px",
										width: "800px"
									}
								},
								credits: {
									enabled: !1
								},
								colors: ["#2f7ed8"],
								title: {
									text: "商城最近" + v + "天价格趋势",
									x: -20,
									style: {
										color: "#666"
									}
								},
								xAxis: {
									type: "datetime",
									dateTimeLabelFormats: {
										day: "%m-%d",
										week: "%m-%d",
										month: "%m-%d"
									},
									minorGridLineColor: "#dfdfdf"
								},
								yAxis: {
									title: {
										text: "价格(元)"
									},
									plotLines: [{
										value: 0,
										width: 1,
										color: "#808080"
									}],
									gridLineColor: "#c0d0e0",
									minorGridLineColor: "#dfdfdf",
									tickPixelInterval: 50
								},
								tooltip: {
									xDateFormat: "%Y-%m-%d",
									shared: !0
								},
								plotOptions: {
									series: {
										marker: {
											radius: 3
										},
										shadow: !1
									}
								},
								legend: {
									enabled: !1,
									borderWidth: 0
								},
								series: []
							}, n = t.store.length, i = 0; n > i; i++) {
								var a = t.store[i];
								if (e.series[i] = {
									visible: !1,
									name: a.name,
									pointStart: Date.UTC(t.startY, t.startM, t.startD),
									pointInterval: 864e5,
									data: []
								}, 0 == i && (e.series[i].visible = !0), a.data.length > 0) {
									var r = a.data.length,
										s = a.data;
									1e3 * a.min_stamp > parseInt(Date.UTC(t.startY, t.startM, t.startD)) && e.series[i].data.push(null);
									for (var l = 0; r > l; l++) {
										var d = new Array(2);
										d[0] = parseInt(s[l][0]), d[1] = parseFloat(s[l][1]), e.series[i].data.push(d)
									}
								}
							}
							f("#" + e.chart.renderTo).length && new o.Chart(e), f("#gwd-trend").attr("show", 1).show(), f("#gwd-trend-chart").append(f("<a>", {
								"class": "gwd_wishlist_btn gwd_wishlist_btn_handle_event",
								href: "javascript:",
								target: "_self"
							}).click(function(t) {
								t.preventDefault(), _.addMini()
							}).append(f("<span>").text("降价提醒")))
						}
					};
				return m.init = function(t, e, n) {
					y() || (t || (t = ""), e && (t += "," + e), (t || "amazon" == a.site || "ai-taobao" == a.site || "taobao" == a.site || "tmall" == a.site || "taobao-95095" == a.site) && (h = t, u = e, g = n, f("#gwdang-main-contents").append(f("<a>", {
						href: "javascript:",
						id: "gwdang-trend",
						target: "_self",
						style: "display:none;",
						"class": "gwdang-tab"
					}).append(f("<span>", {
						"class": "gwd_bg price-trend-icon"
					})).append(f("<span>", {
						id: "gwdang-trend-text"
					}).text("价格历史"))), f("#gwdang-main").append(f("<div>", {
						"class": "panel price-trend",
						id: "gwdang-trend-detail"
					})), C(function(t) {
						k(t)
					})))
				}, m
			}.call(e, n, e, t), !(void 0 !== i && (t.exports = i))
		}).call(e, n(1), n(69))
	},
	function(t, e, n) {
		var i;
		! function() {
			function a(t, e) {
				var n;
				t || (t = {});
				for (n in e) t[n] = e[n];
				return t
			}

			function o() {
				var t, e, n = arguments,
					i = {},
					a = function(t, e) {
						var n, i;
						"object" != typeof t && (t = {});
						for (i in e) e.hasOwnProperty(i) && (n = e[i], t[i] = n && "object" == typeof n && "[object Array]" !== Object.prototype.toString.call(n) && "renderTo" !== i && "number" != typeof n.nodeType ? a(t[i] || {}, n) : e[i]);
						return t
					};
				for (n[0] === !0 && (i = n[1], n = Array.prototype.slice.call(n, 2)), e = n.length, t = 0; e > t; t++) i = a(i, n[t]);
				return i
			}

			function r(t, e) {
				return parseInt(t, e || 10)
			}

			function s(t) {
				return "string" == typeof t
			}

			function l(t) {
				return t && "object" == typeof t
			}

			function d(t) {
				return "[object Array]" === Object.prototype.toString.call(t)
			}

			function c(t) {
				return "number" == typeof t
			}

			function p(t) {
				return wt.log(t) / wt.LN10
			}

			function h(t) {
				return wt.pow(10, t)
			}

			function u(t, e) {
				for (var n = t.length; n--;)
					if (t[n] === e) {
						t.splice(n, 1);
						break
					}
			}

			function g(t) {
				return t !== H && null !== t
			}

			function m(t, e, n) {
				var i, a;
				if (s(e)) g(n) ? t.setAttribute(e, n) : t && t.getAttribute && (a = t.getAttribute(e));
				else if (g(e) && l(e))
					for (i in e) t.setAttribute(i, e[i]);
				return a
			}

			function f(t) {
				return d(t) ? t : [t]
			}

			function w() {
				var t, e, n = arguments,
					i = n.length;
				for (t = 0; i > t; t++)
					if (e = n[t], e !== H && null !== e) return e
			}

			function _(t, e) {
				Pt && !Dt && e && e.opacity !== H && (e.filter = "alpha(opacity=" + 100 * e.opacity + ")"), a(t.style, e)
			}

			function v(t, e, n, i, o) {
				var r = mt.createElement(t);
				return e && a(r, e), o && _(r, {
					padding: 0,
					border: Qt,
					margin: 0
				}), n && _(r, n), i && i.appendChild(r), r
			}

			function b(t, e) {
				var n = function() {
					return H
				};
				return n.prototype = new t, a(n.prototype, e), n
			}

			function x(t, e, n, i) {
				var a = le.numberFormat,
					o = G.lang,
					s = +t || 0,
					l = -1 === e ? (s.toString().split(".")[1] || "").length : isNaN(e = kt(e)) ? 2 : e,
					d = void 0 === n ? o.decimalPoint : n,
					c = void 0 === i ? o.thousandsSep : i,
					p = 0 > s ? "-" : "",
					h = String(r(s = kt(s).toFixed(l))),
					u = h.length > 3 ? h.length % 3 : 0;
				return a !== x ? a(t, e, n, i) : p + (u ? h.substr(0, u) + c : "") + h.substr(u).replace(/(\d{3})(?=\d)/g, "$1" + c) + (l ? d + kt(s - h).toFixed(l).slice(2) : "")
			}

			function y(t, e) {
				return new Array((e || 2) + 1 - String(t).length).join(0) + t
			}

			function k(t, e, n) {
				var i = t[e];
				t[e] = function() {
					var t = Array.prototype.slice.call(arguments);
					return t.unshift(i), n.apply(this, t)
				}
			}

			function z(t, e) {
				var n, i = /f$/,
					a = /\.([0-9])/,
					o = G.lang;
				return i.test(t) ? (n = t.match(a), n = n ? n[1] : -1, null !== e && (e = x(e, n, o.decimalPoint, t.indexOf(",") > -1 ? o.thousandsSep : ""))) : e = Y(t, e), e
			}

			function C(t, e) {
				for (var n, i, a, o, r, s, l, d = "{", c = !1, p = []; - 1 !== (l = t.indexOf(d));) {
					if (n = t.slice(0, l), c) {
						for (i = n.split(":"), a = i.shift().split("."), r = a.length, s = e, o = 0; r > o; o++) s = s[a[o]];
						i.length && (s = z(i.join(":"), s)), p.push(s)
					} else p.push(n);
					t = t.slice(l + 1), c = !c, d = c ? "}" : "{"
				}
				return p.push(t), p.join("")
			}

			function T(t) {
				return wt.pow(10, vt(wt.log(t) / wt.LN10))
			}

			function S(t, e, n, i) {
				var a, o;
				for (n = w(n, 1), a = t / n, e || (e = [1, 2, 2.5, 5, 10], i === !1 && (1 === n ? e = [1, 2, 5, 10] : .1 >= n && (e = [1 / n]))), o = 0; o < e.length && (t = e[o], !(a <= (e[o] + (e[o + 1] || e[o])) / 2)); o++);
				return t *= n
			}

			function j(t, e) {
				var n, i, a = t.length;
				for (i = 0; a > i; i++) t[i].ss_i = i;
				for (t.sort(function(t, i) {
					return n = e(t, i), 0 === n ? t.ss_i - i.ss_i : n
				}), i = 0; a > i; i++) delete t[i].ss_i
			}

			function I(t) {
				for (var e = t.length, n = t[0]; e--;) t[e] < n && (n = t[e]);
				return n
			}

			function P(t) {
				for (var e = t.length, n = t[0]; e--;) t[e] > n && (n = t[e]);
				return n
			}

			function A(t, e) {
				var n;
				for (n in t) t[n] && t[n] !== e && t[n].destroy && t[n].destroy(), delete t[n]
			}

			function E(t) {
				U || (U = v(Ut)), t && U.appendChild(t), U.innerHTML = ""
			}

			function L(t) {
				return parseFloat(t.toPrecision(14))
			}

			function O(t, e) {
				V = w(t, e.animation)
			}

			function N() {
				var t = G.global.useUTC,
					e = t ? "getUTC" : "get",
					n = t ? "setUTC" : "set";
				tt = G.global.Date || window.Date, nt = 6e4 * (t && G.global.timezoneOffset || 0), et = t ? tt.UTC : function(t, e, n, i, a, o) {
					return new tt(t, e, w(n, 1), w(i, 0), w(a, 0), w(o, 0)).getTime()
				}, it = e + "Minutes", at = e + "Hours", ot = e + "Day", rt = e + "Date", st = e + "Month", lt = e + "FullYear", dt = n + "Minutes", ct = n + "Hours", pt = n + "Date", ht = n + "Month", ut = n + "FullYear"
			}

			function D(t) {
				return G = o(!0, G, t), N(), G
			}

			function M() {
				return G
			}

			function q() {}

			function B(t, e, n, i) {
				this.axis = t, this.pos = e, this.type = n || "", this.isNew = !0, n || i || this.addLabel()
			}

			function R() {
				this.init.apply(this, arguments)
			}

			function W() {
				this.init.apply(this, arguments)
			}

			function F(t, e, n, i, a) {
				var o = t.chart.inverted;
				this.axis = t, this.isNegative = n, this.options = e, this.x = i, this.total = null, this.points = {}, this.stack = a, this.alignOptions = {
					align: e.align || (o ? n ? "left" : "right" : "center"),
					verticalAlign: e.verticalAlign || (o ? "middle" : n ? "bottom" : "top"),
					y: w(e.y, o ? 4 : n ? 14 : -6),
					x: w(e.x, o ? n ? -6 : 6 : 0)
				}, this.textAlign = e.textAlign || (o ? n ? "right" : "left" : "center")
			}
			var H, $, X, U, G, Y, V, J, Z, K, Q, tt, et, nt, it, at, ot, rt, st, lt, dt, ct, pt, ht, ut, gt = n(12),
				mt = document,
				ft = window,
				wt = Math,
				_t = wt.round,
				vt = wt.floor,
				bt = wt.ceil,
				xt = wt.max,
				yt = wt.min,
				kt = wt.abs,
				zt = wt.cos,
				Ct = wt.sin,
				Tt = wt.PI,
				St = 2 * Tt / 360,
				jt = navigator.userAgent,
				It = ft.opera,
				Pt = /msie/i.test(jt) && !It,
				At = 8 === mt.documentMode,
				Et = /AppleWebKit/.test(jt),
				Lt = /Firefox/.test(jt),
				Ot = /(Mobile|Android|Windows Phone)/.test(jt),
				Nt = "http://www.w3.org/2000/svg",
				Dt = !!mt.createElementNS && !!mt.createElementNS(Nt, "svg").createSVGRect,
				Mt = Lt && parseInt(jt.split("Firefox/")[1], 10) < 4,
				qt = !Dt && !Pt && !!mt.createElement("canvas").getContext,
				Bt = {},
				Rt = 0,
				Wt = function() {
					return H
				},
				Ft = [],
				Ht = 0,
				$t = "Highcharts",
				Xt = "4.0.4",
				Ut = "div",
				Gt = "absolute",
				Yt = "relative",
				Vt = "hidden",
				Jt = "highcharts-",
				Zt = "visible",
				Kt = "px",
				Qt = "none",
				te = "M",
				ee = "L",
				ne = /^[0-9]+$/,
				ie = "",
				ae = "hover",
				oe = "select",
				re = "stroke-width",
				se = {},
				le = {};
			i = function() {
					return le
				}.call(e, n, e, t), !(void 0 !== i && (t.exports = i)), Y = function(t, e, n) {
					if (!g(e) || isNaN(e)) return "Invalid date";
					t = w(t, "%Y-%m-%d %H:%M:%S");
					var i, o = new tt(e - nt),
						r = o[at](),
						s = o[ot](),
						l = o[rt](),
						d = o[st](),
						c = o[lt](),
						p = G.lang,
						h = p.weekdays,
						u = a({
							a: h[s].substr(0, 3),
							A: h[s],
							d: y(l),
							e: l,
							b: p.shortMonths[d],
							B: p.months[d],
							m: y(d + 1),
							y: c.toString().substr(2, 2),
							Y: c,
							H: y(r),
							I: y(r % 12 || 12),
							l: r % 12 || 12,
							M: y(o[it]()),
							p: 12 > r ? "AM" : "PM",
							P: 12 > r ? "am" : "pm",
							S: y(o.getSeconds()),
							L: y(_t(e % 1e3), 3)
						}, le.dateFormats);
					for (i in u)
						for (; - 1 !== t.indexOf("%" + i);) t = t.replace("%" + i, "function" == typeof u[i] ? u[i](e) : u[i]);
					return n ? t.substr(0, 1).toUpperCase() + t.substr(1) : t
				}, K = function(t, e) {
					var n = "Highcharts error #" + t + ": www.highcharts.com/errors/" + t;
					if (e) throw n;
					ft.console && console.log(n)
				}, Z = {
					millisecond: 1,
					second: 1e3,
					minute: 6e4,
					hour: 36e5,
					day: 864e5,
					week: 6048e5,
					month: 26784e5,
					year: 31556952e3
				}, J = {
					init: function(t, e, n) {
						e = e || "";
						var i, a, o, r, s, l = t.shift,
							d = e.indexOf("C") > -1,
							c = d ? 7 : 3,
							p = e.split(" "),
							h = [].concat(n),
							u = function(t) {
								for (o = t.length; o--;) t[o] === te && t.splice(o + 1, 0, t[o + 1], t[o + 2], t[o + 1], t[o + 2])
							};
						if (d && (u(p), u(h)), t.isArea && (r = p.splice(p.length - 6, 6), s = h.splice(h.length - 6, 6)),
							l <= h.length / c && p.length === h.length)
							for (; l--;) h = [].concat(h).splice(0, c).concat(h);
						if (t.shift = 0, p.length)
							for (i = h.length; p.length < i;) a = [].concat(p).splice(p.length - c, c), d && (a[c - 6] = a[c - 2], a[c - 5] = a[c - 1]), p = p.concat(a);
						return r && (p = p.concat(r), h = h.concat(s)), [p, h]
					},
					step: function(t, e, n, i) {
						var a, o = [],
							r = t.length;
						if (1 === n) o = i;
						else if (r === e.length && 1 > n)
							for (; r--;) a = parseFloat(t[r]), o[r] = isNaN(a) ? t[r] : n * parseFloat(e[r] - a) + a;
						else o = e;
						return o
					}
				},
				function(t) {
					ft.HighchartsAdapter = ft.HighchartsAdapter || t && {
						init: function(e) {
							var n = t.fx;
							t.extend(t.easing, {
								easeOutQuad: function(t, e, n, i, a) {
									return -i * (e /= a) * (e - 2) + n
								}
							}), t.each(["cur", "_default", "width", "height", "opacity"], function(e, i) {
								var a, o = n.step;
								"cur" === i ? o = n.prototype : "_default" === i && t.Tween && (o = t.Tween.propHooks[i], i = "set"), a = o[i], a && (o[i] = function(t) {
									var n;
									return t = e ? t : this, "align" !== t.prop ? (n = t.elem, n.attr ? n.attr(t.prop, "cur" === i ? H : t.now) : a.apply(this, arguments)) : void 0
								})
							}), k(t.cssHooks.opacity, "get", function(t, e, n) {
								return e.attr ? e.opacity || 0 : t.call(this, e, n)
							}), this.addAnimSetter("d", function(t) {
								var n, i = t.elem;
								t.started || (n = e.init(i, i.d, i.toD), t.start = n[0], t.end = n[1], t.started = !0), i.attr("d", e.step(t.start, t.end, t.pos, i.toD))
							}), this.each = Array.prototype.forEach ? function(t, e) {
								return Array.prototype.forEach.call(t, e)
							} : function(t, e) {
								var n, i = t.length;
								for (n = 0; i > n; n++)
									if (e.call(t[n], t[n], n, t) === !1) return n
							}, t.fn.highcharts = function() {
								var t, e, n, i = "Chart",
									a = arguments;
								return this[0] && (s(a[0]) && (i = a[0], a = Array.prototype.slice.call(a, 1)), t = a[0], t !== H && (t.chart = t.chart || {}, t.chart.renderTo = this[0], n = new le[i](t, a[1]), e = this), t === H && (e = Ft[m(this[0], "data-highcharts-chart")])), e
							}
						},
						addAnimSetter: function(e, n) {
							t.Tween ? t.Tween.propHooks[e] = {
								set: n
							} : t.fx.step[e] = n
						},
						getScript: t.getScript,
						inArray: t.inArray,
						adapterRun: function(e, n) {
							return t(e)[n]()
						},
						grep: t.grep,
						map: function(t, e) {
							for (var n = [], i = 0, a = t.length; a > i; i++) n[i] = e.call(t[i], t[i], i, t);
							return n
						},
						offset: function(e) {
							return t(e).offset()
						},
						addEvent: function(e, n, i) {
							t(e).bind(n, i)
						},
						removeEvent: function(e, n, i) {
							var a = mt.removeEventListener ? "removeEventListener" : "detachEvent";
							mt[a] && e && !e[a] && (e[a] = function() {}), t(e).unbind(n, i)
						},
						fireEvent: function(e, n, i, o) {
							var r, s = t.Event(n),
								l = "detached" + n;
							!Pt && i && (delete i.layerX, delete i.layerY, delete i.returnValue), a(s, i), e[n] && (e[l] = e[n], e[n] = null), t.each(["preventDefault", "stopPropagation"], function(t, e) {
								var n = s[e];
								s[e] = function() {
									try {
										n.call(s)
									} catch (t) {
										"preventDefault" === e && (r = !0)
									}
								}
							}), t(e).trigger(s), e[l] && (e[n] = e[l], e[l] = null), !o || s.isDefaultPrevented() || r || o(s)
						},
						washMouseEvent: function(t) {
							var e = t.originalEvent || t;
							return e.pageX === H && (e.pageX = t.pageX, e.pageY = t.pageY), e
						},
						animate: function(e, n, i) {
							var a = t(e);
							e.style || (e.style = {}), n.d && (e.toD = n.d, n.d = 1), a.stop(), n.opacity !== H && e.attr && (n.opacity += "px"), e.hasAnim = 1, a.animate(n, i)
						},
						stop: function(e) {
							e.hasAnim && t(e).stop()
						}
					}
				}(gt);
			var de = ft.HighchartsAdapter,
				ce = de || {};
			de && de.init.call(de, J);
			var pe = ce.adapterRun,
				he = ce.getScript,
				ue = ce.inArray,
				ge = ce.each,
				me = ce.grep,
				fe = ce.offset,
				we = ce.map,
				_e = ce.addEvent,
				ve = ce.removeEvent,
				be = ce.fireEvent,
				xe = ce.washMouseEvent,
				ye = ce.animate,
				ke = ce.stop,
				ze = {
					enabled: !0,
					x: 0,
					y: 15,
					style: {
						color: "#606060",
						cursor: "default",
						fontSize: "11px"
					}
				};
			G = {
				colors: ["#7cb5ec", "#434348", "#90ed7d", "#f7a35c", "#8085e9", "#f15c80", "#e4d354", "#8085e8", "#8d4653", "#91e8e1"],
				symbols: ["circle", "diamond", "square", "triangle", "triangle-down"],
				lang: {
					loading: "Loading...",
					months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
					shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
					weekdays: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
					decimalPoint: ".",
					numericSymbols: ["k", "M", "G", "T", "P", "E"],
					resetZoom: "Reset zoom",
					resetZoomTitle: "Reset zoom level 1:1",
					thousandsSep: ","
				},
				global: {
					useUTC: !0,
					canvasToolsURL: "http://code.highcharts.com/4.0.4/modules/canvas-tools.js",
					VMLRadialGradientURL: "http://code.highcharts.com/4.0.4/gfx/vml-radial-gradient.png"
				},
				chart: {
					borderColor: "#4572A7",
					borderRadius: 0,
					defaultSeriesType: "line",
					ignoreHiddenSeries: !0,
					spacing: [10, 10, 15, 10],
					backgroundColor: "#FFFFFF",
					plotBorderColor: "#C0C0C0",
					resetZoomButton: {
						theme: {
							zIndex: 20
						},
						position: {
							align: "right",
							x: -10,
							y: 10
						}
					}
				},
				title: {
					text: "Chart title",
					align: "center",
					margin: 15,
					style: {
						color: "#333333",
						fontSize: "18px"
					}
				},
				subtitle: {
					text: "",
					align: "center",
					style: {
						color: "#555555"
					}
				},
				plotOptions: {
					line: {
						allowPointSelect: !1,
						showCheckbox: !1,
						animation: {
							duration: 1e3
						},
						events: {},
						lineWidth: 2,
						marker: {
							lineWidth: 0,
							radius: 4,
							lineColor: "#FFFFFF",
							states: {
								hover: {
									enabled: !0,
									lineWidthPlus: 1,
									radiusPlus: 2
								},
								select: {
									fillColor: "#FFFFFF",
									lineColor: "#000000",
									lineWidth: 2
								}
							}
						},
						point: {
							events: {}
						},
						dataLabels: o(ze, {
							align: "center",
							enabled: !1,
							formatter: function() {
								return null === this.y ? "" : x(this.y, -1)
							},
							verticalAlign: "bottom",
							y: 0
						}),
						cropThreshold: 300,
						pointRange: 0,
						states: {
							hover: {
								lineWidthPlus: 1,
								marker: {},
								halo: {
									size: 10,
									opacity: .25
								}
							},
							select: {
								marker: {}
							}
						},
						stickyTracking: !0,
						turboThreshold: 1e3
					}
				},
				labels: {
					style: {
						position: Gt,
						color: "#3E576F"
					}
				},
				legend: {
					enabled: !0,
					align: "center",
					layout: "horizontal",
					labelFormatter: function() {
						return this.name
					},
					borderColor: "#909090",
					borderRadius: 0,
					navigation: {
						activeColor: "#274b6d",
						inactiveColor: "#CCC"
					},
					shadow: !1,
					itemStyle: {
						color: "#333333",
						fontSize: "12px",
						fontWeight: "bold"
					},
					itemHoverStyle: {
						color: "#000"
					},
					itemHiddenStyle: {
						color: "#CCC"
					},
					itemCheckboxStyle: {
						position: Gt,
						width: "13px",
						height: "13px"
					},
					symbolPadding: 5,
					verticalAlign: "bottom",
					x: 0,
					y: 0,
					title: {
						style: {
							fontWeight: "bold"
						}
					}
				},
				loading: {
					labelStyle: {
						fontWeight: "bold",
						position: Yt,
						top: "45%"
					},
					style: {
						position: Gt,
						backgroundColor: "white",
						opacity: .5,
						textAlign: "center"
					}
				},
				tooltip: {
					enabled: !0,
					animation: Dt,
					backgroundColor: "rgba(249, 249, 249, .85)",
					borderWidth: 1,
					borderRadius: 3,
					dateTimeLabelFormats: {
						millisecond: "%A, %b %e, %H:%M:%S.%L",
						second: "%A, %b %e, %H:%M:%S",
						minute: "%A, %b %e, %H:%M",
						hour: "%A, %b %e, %H:%M",
						day: "%A, %b %e, %Y",
						week: "Week from %A, %b %e, %Y",
						month: "%B %Y",
						year: "%Y"
					},
					headerFormat: '<span style="font-size: 10px">{point.key}</span><br/>',
					pointFormat: '<span style="color:{series.color}">●</span> {series.name}: <b>{point.y}</b><br/>',
					shadow: !0,
					snap: Ot ? 25 : 10,
					style: {
						color: "#333333",
						cursor: "default",
						fontSize: "12px",
						padding: "8px",
						whiteSpace: "nowrap"
					}
				},
				credits: {
					enabled: !0,
					text: "Highcharts.com",
					href: "http://www.highcharts.com",
					position: {
						align: "right",
						x: -10,
						verticalAlign: "bottom",
						y: -5
					},
					style: {
						cursor: "pointer",
						color: "#909090",
						fontSize: "9px"
					}
				}
			};
			var Ce = G.plotOptions,
				Te = Ce.line;
			N();
			var Se = /rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/,
				je = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/,
				Ie = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/,
				Pe = function(t) {
					function e(t) {
						t && t.stops ? l = we(t.stops, function(t) {
							return Pe(t[1])
						}) : (s = Se.exec(t), s ? d = [r(s[1]), r(s[2]), r(s[3]), parseFloat(s[4], 10)] : (s = je.exec(t), s ? d = [r(s[1], 16), r(s[2], 16), r(s[3], 16), 1] : (s = Ie.exec(t), s && (d = [r(s[1]), r(s[2]), r(s[3]), 1]))))
					}

					function n(e) {
						var n;
						return l ? (n = o(t), n.stops = [].concat(n.stops), ge(l, function(t, i) {
							n.stops[i] = [n.stops[i][0], t.get(e)]
						})) : n = d && !isNaN(d[0]) ? "rgb" === e ? "rgb(" + d[0] + "," + d[1] + "," + d[2] + ")" : "a" === e ? d[3] : "rgba(" + d.join(",") + ")" : t, n
					}

					function i(t) {
						if (l) ge(l, function(e) {
							e.brighten(t)
						});
						else if (c(t) && 0 !== t) {
							var e;
							for (e = 0; 3 > e; e++) d[e] += r(255 * t), d[e] < 0 && (d[e] = 0), d[e] > 255 && (d[e] = 255)
						}
						return this
					}

					function a(t) {
						return d[3] = t, this
					}
					var s, l, d = [];
					return e(t), {
						get: n,
						brighten: i,
						rgba: d,
						setOpacity: a
					}
				};
			q.prototype = {
				opacity: 1,
				textProps: ["fontSize", "fontWeight", "fontFamily", "color", "lineHeight", "width", "textDecoration", "textShadow", "HcTextStroke"],
				init: function(t, e) {
					var n = this;
					n.element = "span" === e ? v(e) : mt.createElementNS(Nt, e), n.renderer = t
				},
				animate: function(t, e, n) {
					var i = w(e, V, !0);
					return ke(this), i ? (i = o(i, {}), n && (i.complete = n), ye(this, t, i)) : (this.attr(t), n && n()), this
				},
				colorGradient: function(t, e, n) {
					var i, a, r, s, l, c, p, h, u, m, f, w = this.renderer,
						_ = [];
					if (t.linearGradient ? a = "linearGradient" : t.radialGradient && (a = "radialGradient"), a) {
						r = t[a], s = w.gradients, c = t.stops, u = n.radialReference, d(r) && (t[a] = r = {
							x1: r[0],
							y1: r[1],
							x2: r[2],
							y2: r[3],
							gradientUnits: "userSpaceOnUse"
						}), "radialGradient" === a && u && !g(r.gradientUnits) && (r = o(r, {
							cx: u[0] - u[2] / 2 + r.cx * u[2],
							cy: u[1] - u[2] / 2 + r.cy * u[2],
							r: r.r * u[2],
							gradientUnits: "userSpaceOnUse"
						}));
						for (m in r) "id" !== m && _.push(m, r[m]);
						for (m in c) _.push(c[m]);
						_ = _.join(","), s[_] ? f = s[_].attr("id") : (r.id = f = Jt + Rt++, s[_] = l = w.createElement(a).attr(r).add(w.defs), l.stops = [], ge(c, function(t) {
							var e;
							0 === t[1].indexOf("rgba") ? (i = Pe(t[1]), p = i.get("rgb"), h = i.get("a")) : (p = t[1], h = 1), e = w.createElement("stop").attr({
								offset: t[0],
								"stop-color": p,
								"stop-opacity": h
							}).add(l), l.stops.push(e)
						})), n.setAttribute(e, "url(" + w.url + "#" + f + ")")
					}
				},
				attr: function(t, e) {
					var n, i, a, o, r = this.element,
						s = this;
					if ("string" == typeof t && e !== H && (n = t, t = {}, t[n] = e), "string" == typeof t) s = (this[t + "Getter"] || this._defaultGetter).call(this, t, r);
					else {
						for (n in t) i = t[n], o = !1, this.symbolName && /^(x|y|width|height|r|start|end|innerR|anchorX|anchorY)/.test(n) && (a || (this.symbolAttr(t), a = !0), o = !0), !this.rotation || "x" !== n && "y" !== n || (this.doTransform = !0), o || (this[n + "Setter"] || this._defaultSetter).call(this, i, n, r), this.shadows && /^(width|height|visibility|x|y|d|transform|cx|cy|r)$/.test(n) && this.updateShadows(n, i);
						this.doTransform && (this.updateTransform(), this.doTransform = !1)
					}
					return s
				},
				updateShadows: function(t, e) {
					for (var n = this.shadows, i = n.length; i--;) n[i].setAttribute(t, "height" === t ? xt(e - (n[i].cutHeight || 0), 0) : "d" === t ? this.d : e)
				},
				addClass: function(t) {
					var e = this.element,
						n = m(e, "class") || "";
					return -1 === n.indexOf(t) && m(e, "class", n + " " + t), this
				},
				symbolAttr: function(t) {
					var e = this;
					ge(["x", "y", "r", "start", "end", "width", "height", "innerR", "anchorX", "anchorY"], function(n) {
						e[n] = w(t[n], e[n])
					}), e.attr({
						d: e.renderer.symbols[e.symbolName](e.x, e.y, e.width, e.height, e)
					})
				},
				clip: function(t) {
					return this.attr("clip-path", t ? "url(" + this.renderer.url + "#" + t.id + ")" : Qt)
				},
				crisp: function(t) {
					var e, n, i = this,
						a = {},
						o = t.strokeWidth || i.strokeWidth || 0;
					n = _t(o) % 2 / 2, t.x = vt(t.x || i.x || 0) + n, t.y = vt(t.y || i.y || 0) + n, t.width = vt((t.width || i.width || 0) - 2 * n), t.height = vt((t.height || i.height || 0) - 2 * n), t.strokeWidth = o;
					for (e in t) i[e] !== t[e] && (i[e] = a[e] = t[e]);
					return a
				},
				css: function(t) {
					var e, n, i, o = this,
						s = o.styles,
						l = {},
						d = o.element,
						c = "",
						p = !s;
					if (t && t.color && (t.fill = t.color), s)
						for (n in t) t[n] !== s[n] && (l[n] = t[n], p = !0);
					if (p) {
						if (e = o.textWidth = t && t.width && "text" === d.nodeName.toLowerCase() && r(t.width), s && (t = a(s, l)), o.styles = t, e && (qt || !Dt && o.renderer.forExport) && delete t.width, Pt && !Dt) _(o.element, t);
						else {
							i = function(t, e) {
								return "-" + e.toLowerCase()
							};
							for (n in t) c += n.replace(/([A-Z])/g, i) + ":" + t[n] + ";";
							m(d, "style", c)
						}
						e && o.added && o.renderer.buildText(o)
					}
					return o
				},
				on: function(t, e) {
					var n = this,
						i = n.element;
					return X && "click" === t ? (i.ontouchstart = function(t) {
						n.touchEventFired = tt.now(), t.preventDefault(), e.call(i, t)
					}, i.onclick = function(t) {
						(-1 === jt.indexOf("Android") || tt.now() - (n.touchEventFired || 0) > 1100) && e.call(i, t)
					}) : i["on" + t] = e, this
				},
				setRadialReference: function(t) {
					return this.element.radialReference = t, this
				},
				translate: function(t, e) {
					return this.attr({
						translateX: t,
						translateY: e
					})
				},
				invert: function() {
					var t = this;
					return t.inverted = !0, t.updateTransform(), t
				},
				updateTransform: function() {
					var t, e = this,
						n = e.translateX || 0,
						i = e.translateY || 0,
						a = e.scaleX,
						o = e.scaleY,
						r = e.inverted,
						s = e.rotation,
						l = e.element;
					r && (n += e.attr("width"), i += e.attr("height")), t = ["translate(" + n + "," + i + ")"], r ? t.push("rotate(90) scale(-1,1)") : s && t.push("rotate(" + s + " " + (l.getAttribute("x") || 0) + " " + (l.getAttribute("y") || 0) + ")"), (g(a) || g(o)) && t.push("scale(" + w(a, 1) + " " + w(o, 1) + ")"), t.length && l.setAttribute("transform", t.join(" "))
				},
				toFront: function() {
					var t = this.element;
					return t.parentNode.appendChild(t), this
				},
				align: function(t, e, n) {
					var i, a, o, r, l, d = {},
						c = this.renderer,
						p = c.alignedObjects;
					return t ? (this.alignOptions = t, this.alignByTranslate = e, (!n || s(n)) && (this.alignTo = l = n || "renderer", u(p, this), p.push(this), n = null)) : (t = this.alignOptions, e = this.alignByTranslate, l = this.alignTo), n = w(n, c[l], c), i = t.align, a = t.verticalAlign, o = (n.x || 0) + (t.x || 0), r = (n.y || 0) + (t.y || 0), ("right" === i || "center" === i) && (o += (n.width - (t.width || 0)) / {
						right: 1,
						center: 2
					}[i]), d[e ? "translateX" : "x"] = _t(o), ("bottom" === a || "middle" === a) && (r += (n.height - (t.height || 0)) / ({
						bottom: 1,
						middle: 2
					}[a] || 1)), d[e ? "translateY" : "y"] = _t(r), this[this.placed ? "animate" : "attr"](d), this.placed = !0, this.alignAttr = d, this
				},
				getBBox: function() {
					var t, e, n, i = this,
						o = i.bBox,
						r = i.renderer,
						s = i.rotation,
						l = i.element,
						d = i.styles,
						c = s * St,
						p = i.textStr;
					if (("" === p || ne.test(p)) && (n = "num." + p.toString().length + (d ? "|" + d.fontSize + "|" + d.fontFamily : "")), n && (o = r.cache[n]), !o) {
						if (l.namespaceURI === Nt || r.forExport) {
							try {
								o = l.getBBox ? a({}, l.getBBox()) : {
									width: l.offsetWidth,
									height: l.offsetHeight
								}
							} catch (h) {}(!o || o.width < 0) && (o = {
								width: 0,
								height: 0
							})
						} else o = i.htmlGetBBox();
						r.isSVG && (t = o.width, e = o.height, Pt && d && "11px" === d.fontSize && "16.9" === e.toPrecision(3) && (o.height = e = 14), s && (o.width = kt(e * Ct(c)) + kt(t * zt(c)), o.height = kt(e * zt(c)) + kt(t * Ct(c)))), i.bBox = o, n && (r.cache[n] = o)
					}
					return o
				},
				show: function(t) {
					return t && this.element.namespaceURI === Nt ? this.element.removeAttribute("visibility") : this.attr({
						visibility: t ? "inherit" : Zt
					}), this
				},
				hide: function() {
					return this.attr({
						visibility: Vt
					})
				},
				fadeOut: function(t) {
					var e = this;
					e.animate({
						opacity: 0
					}, {
						duration: t || 150,
						complete: function() {
							e.attr({
								y: -9999
							})
						}
					})
				},
				add: function(t) {
					var e, n, i, a, o, s = this.renderer,
						l = t || s,
						d = l.element || s.box,
						c = this.element,
						p = this.zIndex;
					if (t && (this.parentGroup = t), this.parentInverted = t && t.inverted, void 0 !== this.textStr && s.buildText(this), p && (l.handleZ = !0, p = r(p)), l.handleZ)
						for (e = d.childNodes, a = 0; a < e.length; a++)
							if (n = e[a], i = m(n, "zIndex"), n !== c && (r(i) > p || !g(p) && g(i))) {
								d.insertBefore(c, n), o = !0;
								break
							}
					return o || d.appendChild(c), this.added = !0, this.onAdd && this.onAdd(), this
				},
				safeRemoveChild: function(t) {
					var e = t.parentNode;
					e && e.removeChild(t)
				},
				destroy: function() {
					var t, e, n, i = this,
						a = i.element || {},
						o = i.shadows,
						r = i.renderer.isSVG && "SPAN" === a.nodeName && i.parentGroup;
					if (a.onclick = a.onmouseout = a.onmouseover = a.onmousemove = a.point = null, ke(i), i.clipPath && (i.clipPath = i.clipPath.destroy()), i.stops) {
						for (n = 0; n < i.stops.length; n++) i.stops[n] = i.stops[n].destroy();
						i.stops = null
					}
					for (i.safeRemoveChild(a), o && ge(o, function(t) {
						i.safeRemoveChild(t)
					}); r && r.div && 0 === r.div.childNodes.length;) t = r.parentGroup, i.safeRemoveChild(r.div), delete r.div, r = t;
					i.alignTo && u(i.renderer.alignedObjects, i);
					for (e in i) delete i[e];
					return null
				},
				shadow: function(t, e, n) {
					var i, a, o, r, s, l, d = [],
						c = this.element;
					if (t) {
						for (r = w(t.width, 3), s = (t.opacity || .15) / r, l = this.parentInverted ? "(-1,-1)" : "(" + w(t.offsetX, 1) + ", " + w(t.offsetY, 1) + ")", i = 1; r >= i; i++) a = c.cloneNode(0), o = 2 * r + 1 - 2 * i, m(a, {
							isShadow: "true",
							stroke: t.color || "black",
							"stroke-opacity": s * i,
							"stroke-width": o,
							transform: "translate" + l,
							fill: Qt
						}), n && (m(a, "height", xt(m(a, "height") - o, 0)), a.cutHeight = o), e ? e.element.appendChild(a) : c.parentNode.insertBefore(a, c), d.push(a);
						this.shadows = d
					}
					return this
				},
				xGetter: function(t) {
					return "circle" === this.element.nodeName && (t = {
						x: "cx",
						y: "cy"
					}[t] || t), this._defaultGetter(t)
				},
				_defaultGetter: function(t) {
					var e = w(this[t], this.element ? this.element.getAttribute(t) : null, 0);
					return /^[\-0-9\.]+$/.test(e) && (e = parseFloat(e)), e
				},
				dSetter: function(t, e, n) {
					t && t.join && (t = t.join(" ")), /(NaN| {2}|^$)/.test(t) && (t = "M 0 0"), n.setAttribute(e, t), this[e] = t
				},
				dashstyleSetter: function(t) {
					var e;
					if (t = t && t.toLowerCase()) {
						for (t = t.replace("shortdashdotdot", "3,1,1,1,1,1,").replace("shortdashdot", "3,1,1,1").replace("shortdot", "1,1,").replace("shortdash", "3,1,").replace("longdash", "8,3,").replace(/dot/g, "1,3,").replace("dash", "4,3,").replace(/,$/, "").split(","), e = t.length; e--;) t[e] = r(t[e]) * this["stroke-width"];
						t = t.join(",").replace("NaN", "none"), this.element.setAttribute("stroke-dasharray", t)
					}
				},
				alignSetter: function(t) {
					this.element.setAttribute("text-anchor", {
						left: "start",
						center: "middle",
						right: "end"
					}[t])
				},
				opacitySetter: function(t, e, n) {
					this[e] = t, n.setAttribute(e, t)
				},
				titleSetter: function(t) {
					var e = this.element.getElementsByTagName("title")[0];
					e || (e = mt.createElementNS(Nt, "title"), this.element.appendChild(e)), e.textContent = w(t, "").replace(/<[^>]*>/g, "")
				},
				textSetter: function(t) {
					t !== this.textStr && (delete this.bBox, this.textStr = t, this.added && this.renderer.buildText(this))
				},
				fillSetter: function(t, e, n) {
					"string" == typeof t ? n.setAttribute(e, t) : t && this.colorGradient(t, e, n)
				},
				zIndexSetter: function(t, e, n) {
					n.setAttribute(e, t), this[e] = t
				},
				_defaultSetter: function(t, e, n) {
					n.setAttribute(e, t)
				}
			}, q.prototype.yGetter = q.prototype.xGetter, q.prototype.translateXSetter = q.prototype.translateYSetter = q.prototype.rotationSetter = q.prototype.verticalAlignSetter = q.prototype.scaleXSetter = q.prototype.scaleYSetter = function(t, e) {
				this[e] = t, this.doTransform = !0
			}, q.prototype["stroke-widthSetter"] = q.prototype.strokeSetter = function(t, e, n) {
				this[e] = t, this.stroke && this["stroke-width"] ? (this.strokeWidth = this["stroke-width"], q.prototype.fillSetter.call(this, this.stroke, "stroke", n), n.setAttribute("stroke-width", this["stroke-width"]), this.hasStroke = !0) : "stroke-width" === e && 0 === t && this.hasStroke && (n.removeAttribute("stroke"), this.hasStroke = !1)
			};
			var Ae = function() {
				this.init.apply(this, arguments)
			};
			Ae.prototype = {
				Element: q,
				init: function(t, e, n, i, a) {
					var o, r, s, l = this,
						d = location;
					o = l.createElement("svg").attr({
						version: "1.1"
					}).css(this.getStyle(i)), r = o.element, t.appendChild(r), -1 === t.innerHTML.indexOf("xmlns") && m(r, "xmlns", Nt), l.isSVG = !0, l.box = r, l.boxWrapper = o, l.alignedObjects = [], l.url = (Lt || Et) && mt.getElementsByTagName("base").length ? d.href.replace(/#.*?$/, "").replace(/([\('\)])/g, "\\$1").replace(/ /g, "%20") : "", s = this.createElement("desc").add(), s.element.appendChild(mt.createTextNode("Created with " + $t + " " + Xt)), l.defs = this.createElement("defs").add(), l.forExport = a, l.gradients = {}, l.cache = {}, l.setSize(e, n, !1);
					var c, p;
					Lt && t.getBoundingClientRect && (l.subPixelFix = c = function() {
						_(t, {
							left: 0,
							top: 0
						}), p = t.getBoundingClientRect(), _(t, {
							left: bt(p.left) - p.left + Kt,
							top: bt(p.top) - p.top + Kt
						})
					}, c(), _e(ft, "resize", c))
				},
				getStyle: function(t) {
					return this.style = a({
						fontFamily: '"Lucida Grande", "Lucida Sans Unicode", Arial, Helvetica, sans-serif',
						fontSize: "12px"
					}, t)
				},
				isHidden: function() {
					return !this.boxWrapper.getBBox().width
				},
				destroy: function() {
					var t = this,
						e = t.defs;
					return t.box = null, t.boxWrapper = t.boxWrapper.destroy(), A(t.gradients || {}), t.gradients = null, e && (t.defs = e.destroy()), t.subPixelFix && ve(ft, "resize", t.subPixelFix), t.alignedObjects = null, null
				},
				createElement: function(t) {
					var e = new this.Element;
					return e.init(this, t), e
				},
				draw: function() {},
				buildText: function(t) {
					for (var e, n, i, a = t.element, o = this, s = o.forExport, l = w(t.textStr, "").toString(), d = -1 !== l.indexOf("<"), c = a.childNodes, p = m(a, "x"), h = t.styles, u = t.textWidth, g = h && h.lineHeight, f = h && h.HcTextStroke, v = c.length, b = function(t) {
						return g ? r(g) : o.fontMetrics(/(px|em)$/.test(t && t.style.fontSize) ? t.style.fontSize : h && h.fontSize || o.style.fontSize || 12, t).h
					}; v--;) a.removeChild(c[v]);
					return d || f || -1 !== l.indexOf(" ") ? (n = /<.*style="([^"]+)".*>/, i = /<.*href="(http[^"]+)".*>/, u && !t.added && this.box.appendChild(a), e = d ? l.replace(/<(b|strong)>/g, '<span style="font-weight:bold">').replace(/<(i|em)>/g, '<span style="font-style:italic">').replace(/<a/g, "<span").replace(/<\/(b|strong|i|em|a)>/g, "</span>").split(/<br.*?>/g) : [l], "" === e[e.length - 1] && e.pop(), ge(e, function(e, r) {
						var l, d = 0;
						e = e.replace(/<span/g, "|||<span").replace(/<\/span>/g, "</span>|||"), l = e.split("|||"), ge(l, function(e) {
							if ("" !== e || 1 === l.length) {
								var c, g = {},
									f = mt.createElementNS(Nt, "tspan");
								if (n.test(e) && (c = e.match(n)[1].replace(/(;| |^)color([ :])/, "$1fill$2"), m(f, "style", c)), i.test(e) && !s && (m(f, "onclick", 'location.href="' + e.match(i)[1] + '"'), _(f, {
									cursor: "pointer"
								})), e = (e.replace(/<(.|\n)*?>/g, "") || " ").replace(/&lt;/g, "<").replace(/&gt;/g, ">"), " " !== e) {
									if (f.appendChild(mt.createTextNode(e)), d ? g.dx = 0 : r && null !== p && (g.x = p), m(f, g), a.appendChild(f), !d && r && (!Dt && s && _(f, {
										display: "block"
									}), m(f, "dy", b(f))), u)
										for (var w, v, x, y = e.replace(/([^\^])-/g, "$1- ").split(" "), k = l.length > 1 || y.length > 1 && "nowrap" !== h.whiteSpace, z = h.HcHeight, C = [], T = b(f), S = 1; k && (y.length || C.length);) delete t.bBox, x = t.getBBox(), v = x.width, !Dt && o.forExport && (v = o.measureSpanWidth(f.firstChild.data, t.styles)), w = v > u, w && 1 !== y.length ? (f.removeChild(f.firstChild), C.unshift(y.pop())) : (y = C, C = [], y.length && (S++, z && S * T > z ? (y = ["..."], t.attr("title", t.textStr)) : (f = mt.createElementNS(Nt, "tspan"), m(f, {
											dy: T,
											x: p
										}), c && m(f, "style", c), a.appendChild(f))), v > u && (u = v)), y.length && f.appendChild(mt.createTextNode(y.join(" ").replace(/- /g, "-")));
									d++
								}
							}
						})
					}), void 0) : void a.appendChild(mt.createTextNode(l))
				},
				button: function(t, e, n, i, r, s, l, d, c) {
					var p, h, u, g, m, f, w = this.label(t, e, n, c, null, null, null, null, "button"),
						_ = 0,
						v = {
							x1: 0,
							y1: 0,
							x2: 0,
							y2: 1
						};
					return r = o({
						"stroke-width": 1,
						stroke: "#CCCCCC",
						fill: {
							linearGradient: v,
							stops: [
								[0, "#FEFEFE"],
								[1, "#F6F6F6"]
							]
						},
						r: 2,
						padding: 5,
						style: {
							color: "black"
						}
					}, r), u = r.style, delete r.style, s = o(r, {
						stroke: "#68A",
						fill: {
							linearGradient: v,
							stops: [
								[0, "#FFF"],
								[1, "#ACF"]
							]
						}
					}, s), g = s.style, delete s.style, l = o(r, {
						stroke: "#68A",
						fill: {
							linearGradient: v,
							stops: [
								[0, "#9BD"],
								[1, "#CDF"]
							]
						}
					}, l), m = l.style, delete l.style, d = o(r, {
						style: {
							color: "#CCC"
						}
					}, d), f = d.style, delete d.style, _e(w.element, Pt ? "mouseover" : "mouseenter", function() {
						3 !== _ && w.attr(s).css(g)
					}), _e(w.element, Pt ? "mouseout" : "mouseleave", function() {
						3 !== _ && (p = [r, s, l][_], h = [u, g, m][_], w.attr(p).css(h))
					}), w.setState = function(t) {
						w.state = _ = t, t ? 2 === t ? w.attr(l).css(m) : 3 === t && w.attr(d).css(f) : w.attr(r).css(u)
					}, w.on("click", function() {
						3 !== _ && i.call(w)
					}).attr(r).css(a({
						cursor: "default"
					}, u))
				},
				crispLine: function(t, e) {
					return t[1] === t[4] && (t[1] = t[4] = _t(t[1]) - e % 2 / 2), t[2] === t[5] && (t[2] = t[5] = _t(t[2]) + e % 2 / 2), t
				},
				path: function(t) {
					var e = {
						fill: Qt
					};
					return d(t) ? e.d = t : l(t) && a(e, t), this.createElement("path").attr(e)
				},
				circle: function(t, e, n) {
					var i = l(t) ? t : {
							x: t,
							y: e,
							r: n
						},
						a = this.createElement("circle");
					return a.xSetter = function(t) {
						this.element.setAttribute("cx", t)
					}, a.ySetter = function(t) {
						this.element.setAttribute("cy", t)
					}, a.attr(i)
				},
				arc: function(t, e, n, i, a, o) {
					var r;
					return l(t) && (e = t.y, n = t.r, i = t.innerR, a = t.start, o = t.end, t = t.x), r = this.symbol("arc", t || 0, e || 0, n || 0, n || 0, {
						innerR: i || 0,
						start: a || 0,
						end: o || 0
					}), r.r = n, r
				},
				rect: function(t, e, n, i, a, o) {
					a = l(t) ? t.r : a;
					var r = this.createElement("rect"),
						s = l(t) ? t : t === H ? {} : {
							x: t,
							y: e,
							width: xt(n, 0),
							height: xt(i, 0)
						};
					return o !== H && (s.strokeWidth = o, s = r.crisp(s)), a && (s.r = a), r.rSetter = function(t) {
						m(this.element, {
							rx: t,
							ry: t
						})
					}, r.attr(s)
				},
				setSize: function(t, e, n) {
					var i = this,
						a = i.alignedObjects,
						o = a.length;
					for (i.width = t, i.height = e, i.boxWrapper[w(n, !0) ? "animate" : "attr"]({
						width: t,
						height: e
					}); o--;) a[o].align()
				},
				g: function(t) {
					var e = this.createElement("g");
					return g(t) ? e.attr({
						"class": Jt + t
					}) : e
				},
				image: function(t, e, n, i, o) {
					var r, s = {
						preserveAspectRatio: Qt
					};
					return arguments.length > 1 && a(s, {
						x: e,
						y: n,
						width: i,
						height: o
					}), r = this.createElement("image").attr(s), r.element.setAttributeNS ? r.element.setAttributeNS("http://www.w3.org/1999/xlink", "href", t) : r.element.setAttribute("hc-svg-href", t), r
				},
				symbol: function(t, e, n, i, o, r) {
					var s, l, d, c, p, h = this.symbols[t],
						u = h && h(_t(e), _t(n), i, o, r),
						g = /^url\((.*?)\)$/;
					return u ? (s = this.path(u), a(s, {
						symbolName: t,
						x: e,
						y: n,
						width: i,
						height: o
					}), r && a(s, r)) : g.test(t) && (p = function(t, e) {
						t.element && (t.attr({
							width: e[0],
							height: e[1]
						}), t.alignByTranslate || t.translate(_t((i - e[0]) / 2), _t((o - e[1]) / 2)))
					}, d = t.match(g)[1], c = Bt[d] || r && r.width && r.height && [r.width, r.height], s = this.image(d).attr({
						x: e,
						y: n
					}), s.isImg = !0, c ? p(s, c) : (s.attr({
						width: 0,
						height: 0
					}), l = v("img", {
						onload: function() {
							p(s, Bt[d] = [this.width, this.height])
						},
						src: d
					}))), s
				},
				symbols: {
					circle: function(t, e, n, i) {
						var a = .166 * n;
						return [te, t + n / 2, e, "C", t + n + a, e, t + n + a, e + i, t + n / 2, e + i, "C", t - a, e + i, t - a, e, t + n / 2, e, "Z"]
					},
					square: function(t, e, n, i) {
						return [te, t, e, ee, t + n, e, t + n, e + i, t, e + i, "Z"]
					},
					triangle: function(t, e, n, i) {
						return [te, t + n / 2, e, ee, t + n, e + i, t, e + i, "Z"]
					},
					"triangle-down": function(t, e, n, i) {
						return [te, t, e, ee, t + n, e, t + n / 2, e + i, "Z"]
					},
					diamond: function(t, e, n, i) {
						return [te, t + n / 2, e, ee, t + n, e + i / 2, t + n / 2, e + i, t, e + i / 2, "Z"]
					},
					arc: function(t, e, n, i, a) {
						var o = a.start,
							r = a.r || n || i,
							s = a.end - .001,
							l = a.innerR,
							d = a.open,
							c = zt(o),
							p = Ct(o),
							h = zt(s),
							u = Ct(s),
							g = a.end - o < Tt ? 0 : 1;
						return [te, t + r * c, e + r * p, "A", r, r, 0, g, 1, t + r * h, e + r * u, d ? te : ee, t + l * h, e + l * u, "A", l, l, 0, g, 0, t + l * c, e + l * p, d ? "" : "Z"]
					},
					callout: function(t, e, n, i, a) {
						var o, r = 6,
							s = 6,
							l = yt(a && a.r || 0, n, i),
							d = l + s,
							c = a && a.anchorX,
							p = a && a.anchorY,
							h = _t(a.strokeWidth || 0) % 2 / 2;
						return t += h, e += h, o = ["M", t + l, e, "L", t + n - l, e, "C", t + n, e, t + n, e, t + n, e + l, "L", t + n, e + i - l, "C", t + n, e + i, t + n, e + i, t + n - l, e + i, "L", t + l, e + i, "C", t, e + i, t, e + i, t, e + i - l, "L", t, e + l, "C", t, e, t, e, t + l, e], c && c > n && p > e + d && e + i - d > p ? o.splice(13, 3, "L", t + n, p - s, t + n + r, p, t + n, p + s, t + n, e + i - l) : c && 0 > c && p > e + d && e + i - d > p ? o.splice(33, 3, "L", t, p + s, t - r, p, t, p - s, t, e + l) : p && p > i && c > t + d && t + n - d > c ? o.splice(23, 3, "L", c + s, e + i, c, e + i + r, c - s, e + i, t + l, e + i) : p && 0 > p && c > t + d && t + n - d > c && o.splice(3, 3, "L", c - s, e, c, e - r, c + s, e, n - l, e), o
					}
				},
				clipRect: function(t, e, n, i) {
					var a, o = Jt + Rt++,
						r = this.createElement("clipPath").attr({
							id: o
						}).add(this.defs);
					return a = this.rect(t, e, n, i, 0).add(r), a.id = o, a.clipPath = r, a
				},
				text: function(t, e, n, i) {
					var a, o = this,
						r = qt || !Dt && o.forExport,
						s = {};
					return i && !o.forExport ? o.html(t, e, n) : (s.x = Math.round(e || 0), n && (s.y = Math.round(n)), (t || 0 === t) && (s.text = t), a = o.createElement("text").attr(s), r && a.css({
						position: Gt
					}), i || (a.xSetter = function(t, e, n) {
						var i, a, o = n.getElementsByTagName("tspan"),
							r = n.getAttribute(e);
						for (a = 0; a < o.length; a++) i = o[a], i.getAttribute(e) === r && i.setAttribute(e, t);
						n.setAttribute(e, t)
					}), a)
				},
				fontMetrics: function(t, e) {
					t = t || this.style.fontSize, e && ft.getComputedStyle && (e = e.element || e, t = ft.getComputedStyle(e, "").fontSize), t = /px/.test(t) ? r(t) : /em/.test(t) ? 12 * parseFloat(t) : 12;
					var n = 24 > t ? t + 4 : _t(1.2 * t),
						i = _t(.8 * n);
					return {
						h: n,
						b: i,
						f: t
					}
				},
				label: function(t, e, n, i, r, s, l, d, c) {
					function p() {
						var t, e, n = C.element.style;
						f = (void 0 === w || void 0 === _ || z.styles.textAlign) && C.textStr && C.getBBox(), z.width = (w || f.width || 0) + 2 * S + j, z.height = (_ || f.height || 0) + 2 * S, x = S + k.fontMetrics(n && n.fontSize, C).b, y && (m || (t = _t(-T * S), e = d ? -x : 0, z.box = m = i ? k.symbol(i, t, e, z.width, z.height, P) : k.rect(t, e, z.width, z.height, 0, P[re]), m.attr("fill", Qt).add(z)), m.isImg || m.attr(a({
							width: _t(z.width),
							height: _t(z.height)
						}, P)), P = null)
					}

					function h() {
						var t, e = z.styles,
							n = e && e.textAlign,
							i = j + S * (1 - T);
						t = d ? 0 : x, g(w) && f && ("center" === n || "right" === n) && (i += {
							center: .5,
							right: 1
						}[n] * (w - f.width)), (i !== C.x || t !== C.y) && (C.attr("x", i), t !== H && C.attr("y", t)), C.x = i, C.y = t
					}

					function u(t, e) {
						m ? m.attr(t, e) : P[t] = e
					}
					var m, f, w, _, v, b, x, y, k = this,
						z = k.g(c),
						C = k.text("", 0, 0, l).attr({
							zIndex: 1
						}),
						T = 0,
						S = 3,
						j = 0,
						I = 0,
						P = {};
					z.onAdd = function() {
						C.add(z), z.attr({
							text: t || 0 === t ? t : "",
							x: e,
							y: n
						}), m && g(r) && z.attr({
							anchorX: r,
							anchorY: s
						})
					}, z.widthSetter = function(t) {
						w = t
					}, z.heightSetter = function(t) {
						_ = t
					}, z.paddingSetter = function(t) {
						g(t) && t !== S && (S = t, h())
					}, z.paddingLeftSetter = function(t) {
						g(t) && t !== j && (j = t, h())
					}, z.alignSetter = function(t) {
						T = {
							left: 0,
							center: .5,
							right: 1
						}[t]
					}, z.textSetter = function(t) {
						t !== H && C.textSetter(t), p(), h()
					}, z["stroke-widthSetter"] = function(t, e) {
						t && (y = !0), I = t % 2 / 2, u(e, t)
					}, z.strokeSetter = z.fillSetter = z.rSetter = function(t, e) {
						"fill" === e && t && (y = !0), u(e, t)
					}, z.anchorXSetter = function(t, e) {
						r = t, u(e, t + I - v)
					}, z.anchorYSetter = function(t, e) {
						s = t, u(e, t - b)
					}, z.xSetter = function(t) {
						z.x = t, T && (t -= T * ((w || f.width) + S)), v = _t(t), z.attr("translateX", v)
					}, z.ySetter = function(t) {
						b = z.y = _t(t), z.attr("translateY", b)
					};
					var A = z.css;
					return a(z, {
						css: function(t) {
							if (t) {
								var e = {};
								t = o(t), ge(z.textProps, function(n) {
									t[n] !== H && (e[n] = t[n], delete t[n])
								}), C.css(e)
							}
							return A.call(z, t)
						},
						getBBox: function() {
							return {
								width: f.width + 2 * S,
								height: f.height + 2 * S,
								x: f.x - S,
								y: f.y - S
							}
						},
						shadow: function(t) {
							return m && m.shadow(t), z
						},
						destroy: function() {
							ve(z.element, "mouseenter"), ve(z.element, "mouseleave"), C && (C = C.destroy()), m && (m = m.destroy()), q.prototype.destroy.call(z), z = k = p = h = u = null
						}
					})
				}
			}, $ = Ae, a(q.prototype, {
				htmlCss: function(t) {
					var e = this,
						n = e.element,
						i = t && "SPAN" === n.tagName && t.width;
					return i && (delete t.width, e.textWidth = i, e.updateTransform()), e.styles = a(e.styles, t), _(e.element, t), e
				},
				htmlGetBBox: function() {
					var t = this,
						e = t.element,
						n = t.bBox;
					return n || ("text" === e.nodeName && (e.style.position = Gt), n = t.bBox = {
						x: e.offsetLeft,
						y: e.offsetTop,
						width: e.offsetWidth,
						height: e.offsetHeight
					}), n
				},
				htmlUpdateTransform: function() {
					if (!this.added) return void(this.alignOnAdd = !0);
					var t = this,
						e = t.renderer,
						n = t.element,
						i = t.translateX || 0,
						a = t.translateY || 0,
						o = t.x || 0,
						s = t.y || 0,
						l = t.textAlign || "left",
						d = {
							left: 0,
							center: .5,
							right: 1
						}[l],
						c = t.shadows;
					if (_(n, {
						marginLeft: i,
						marginTop: a
					}), c && ge(c, function(t) {
						_(t, {
							marginLeft: i + 1,
							marginTop: a + 1
						})
					}), t.inverted && ge(n.childNodes, function(t) {
						e.invertChild(t, n)
					}), "SPAN" === n.tagName) {
						var p, h, u = t.rotation,
							m = r(t.textWidth),
							f = [u, l, n.innerHTML, t.textWidth].join(",");
						f !== t.cTT && (h = e.fontMetrics(n.style.fontSize).b, g(u) && t.setSpanRotation(u, d, h), p = w(t.elemWidth, n.offsetWidth), p > m && /[ \-]/.test(n.textContent || n.innerText) && (_(n, {
							width: m + Kt,
							display: "block",
							whiteSpace: "normal"
						}), p = m), t.getSpanCorrection(p, h, d, u, l)), _(n, {
							left: o + (t.xCorr || 0) + Kt,
							top: s + (t.yCorr || 0) + Kt
						}), Et && (h = n.offsetHeight), t.cTT = f
					}
				},
				setSpanRotation: function(t, e, n) {
					var i = {},
						a = Pt ? "-ms-transform" : Et ? "-webkit-transform" : Lt ? "MozTransform" : It ? "-o-transform" : "";
					i[a] = i.transform = "rotate(" + t + "deg)", i[a + (Lt ? "Origin" : "-origin")] = i.transformOrigin = 100 * e + "% " + n + "px", _(this.element, i)
				},
				getSpanCorrection: function(t, e, n) {
					this.xCorr = -t * n, this.yCorr = -e
				}
			}), a(Ae.prototype, {
				html: function(t, e, n) {
					var i = this.createElement("span"),
						o = i.element,
						r = i.renderer;
					return i.textSetter = function(t) {
						t !== o.innerHTML && delete this.bBox, o.innerHTML = this.textStr = t
					}, i.xSetter = i.ySetter = i.alignSetter = i.rotationSetter = function(t, e) {
						"align" === e && (e = "textAlign"), i[e] = t, i.htmlUpdateTransform()
					}, i.attr({
						text: t,
						x: _t(e),
						y: _t(n)
					}).css({
						position: Gt,
						whiteSpace: "nowrap",
						fontFamily: this.style.fontFamily,
						fontSize: this.style.fontSize
					}), i.css = i.htmlCss, r.isSVG && (i.add = function(t) {
						var e, n, s = r.box.parentNode,
							l = [];
						if (this.parentGroup = t, t) {
							if (e = t.div, !e) {
								for (n = t; n;) l.push(n), n = n.parentGroup;
								ge(l.reverse(), function(t) {
									var n;
									e = t.div = t.div || v(Ut, {
										className: m(t.element, "class")
									}, {
										position: Gt,
										left: (t.translateX || 0) + Kt,
										top: (t.translateY || 0) + Kt
									}, e || s), n = e.style, a(t, {
										translateXSetter: function(e, i) {
											n.left = e + Kt, t[i] = e, t.doTransform = !0
										},
										translateYSetter: function(e, i) {
											n.top = e + Kt, t[i] = e, t.doTransform = !0
										},
										visibilitySetter: function(t, e) {
											n[e] = t
										}
									})
								})
							}
						} else e = s;
						return e.appendChild(o), i.added = !0, i.alignOnAdd && i.htmlUpdateTransform(), i
					}), i
				}
			});
			var Ee, Le;
			if (!Dt && !qt) {
				Le = {
					init: function(t, e) {
						var n = this,
							i = ["<", e, ' filled="f" stroked="f"'],
							a = ["position: ", Gt, ";"],
							o = e === Ut;
						("shape" === e || o) && a.push("left:0;top:0;width:1px;height:1px;"), a.push("visibility: ", o ? Vt : Zt), i.push(' style="', a.join(""), '"/>'), e && (i = o || "span" === e || "img" === e ? i.join("") : t.prepVML(i), n.element = v(i)), n.renderer = t
					},
					add: function(t) {
						var e = this,
							n = e.renderer,
							i = e.element,
							a = n.box,
							o = t && t.inverted,
							r = t ? t.element || t : a;
						return o && n.invertChild(i, r), r.appendChild(i), e.added = !0, e.alignOnAdd && !e.deferUpdateTransform && e.updateTransform(), e.onAdd && e.onAdd(), e
					},
					updateTransform: q.prototype.htmlUpdateTransform,
					setSpanRotation: function() {
						var t = this.rotation,
							e = zt(t * St),
							n = Ct(t * St);
						_(this.element, {
							filter: t ? ["progid:DXImageTransform.Microsoft.Matrix(M11=", e, ", M12=", -n, ", M21=", n, ", M22=", e, ", sizingMethod='auto expand')"].join("") : Qt
						})
					},
					getSpanCorrection: function(t, e, n, i, a) {
						var o, r = i ? zt(i * St) : 1,
							s = i ? Ct(i * St) : 0,
							l = w(this.elemHeight, this.element.offsetHeight),
							d = a && "left" !== a;
						this.xCorr = 0 > r && -t, this.yCorr = 0 > s && -l, o = 0 > r * s, this.xCorr += s * e * (o ? 1 - n : n), this.yCorr -= r * e * (i ? o ? n : 1 - n : 1), d && (this.xCorr -= t * n * (0 > r ? -1 : 1), i && (this.yCorr -= l * n * (0 > s ? -1 : 1)), _(this.element, {
							textAlign: a
						}))
					},
					pathToVML: function(t) {
						for (var e = t.length, n = []; e--;) c(t[e]) ? n[e] = _t(10 * t[e]) - 5 : "Z" === t[e] ? n[e] = "x" : (n[e] = t[e], !t.isArc || "wa" !== t[e] && "at" !== t[e] || (n[e + 5] === n[e + 7] && (n[e + 7] += t[e + 7] > t[e + 5] ? 1 : -1), n[e + 6] === n[e + 8] && (n[e + 8] += t[e + 8] > t[e + 6] ? 1 : -1)));
						return n.join(" ") || "x"
					},
					clip: function(t) {
						var e, n, i = this;
						return t ? (e = t.members, u(e, i), e.push(i), i.destroyClip = function() {
							u(e, i)
						}, n = t.getCSS(i)) : (i.destroyClip && i.destroyClip(), n = {
							clip: At ? "inherit" : "rect(auto)"
						}), i.css(n)
					},
					css: q.prototype.htmlCss,
					safeRemoveChild: function(t) {
						t.parentNode && E(t)
					},
					destroy: function() {
						return this.destroyClip && this.destroyClip(), q.prototype.destroy.apply(this)
					},
					on: function(t, e) {
						return this.element["on" + t] = function() {
							var t = ft.event;
							t.target = t.srcElement, e(t)
						}, this
					},
					cutOffPath: function(t, e) {
						var n;
						return t = t.split(/[ ,]/), n = t.length, (9 === n || 11 === n) && (t[n - 4] = t[n - 2] = r(t[n - 2]) - 10 * e), t.join(" ")
					},
					shadow: function(t, e, n) {
						var i, a, o, s, l, d, c, p = [],
							h = this.element,
							u = this.renderer,
							g = h.style,
							m = h.path;
						if (m && "string" != typeof m.value && (m = "x"), l = m, t) {
							for (d = w(t.width, 3), c = (t.opacity || .15) / d, i = 1; 3 >= i; i++) s = 2 * d + 1 - 2 * i, n && (l = this.cutOffPath(m.value, s + .5)), o = ['<shape isShadow="true" strokeweight="', s, '" filled="false" path="', l, '" coordsize="10 10" style="', h.style.cssText, '" />'],
								a = v(u.prepVML(o), null, {
									left: r(g.left) + w(t.offsetX, 1),
									top: r(g.top) + w(t.offsetY, 1)
								}), n && (a.cutOff = s + 1), o = ['<stroke color="', t.color || "black", '" opacity="', c * i, '"/>'], v(u.prepVML(o), null, null, a), e ? e.element.appendChild(a) : h.parentNode.insertBefore(a, h), p.push(a);
							this.shadows = p
						}
						return this
					},
					updateShadows: Wt,
					setAttr: function(t, e) {
						At ? this.element[t] = e : this.element.setAttribute(t, e)
					},
					classSetter: function(t) {
						this.element.className = t
					},
					dashstyleSetter: function(t, e, n) {
						var i = n.getElementsByTagName("stroke")[0] || v(this.renderer.prepVML(["<stroke/>"]), null, null, n);
						i[e] = t || "solid", this[e] = t
					},
					dSetter: function(t, e, n) {
						var i, a = this.shadows;
						if (t = t || [], this.d = t.join && t.join(" "), n.path = t = this.pathToVML(t), a)
							for (i = a.length; i--;) a[i].path = a[i].cutOff ? this.cutOffPath(t, a[i].cutOff) : t;
						this.setAttr(e, t)
					},
					fillSetter: function(t, e, n) {
						var i = n.nodeName;
						"SPAN" === i ? n.style.color = t : "IMG" !== i && (n.filled = t !== Qt, this.setAttr("fillcolor", this.renderer.color(t, n, e, this)))
					},
					opacitySetter: Wt,
					rotationSetter: function(t, e, n) {
						var i = n.style;
						this[e] = i[e] = t, i.left = -_t(Ct(t * St) + 1) + Kt, i.top = _t(zt(t * St)) + Kt
					},
					strokeSetter: function(t, e, n) {
						this.setAttr("strokecolor", this.renderer.color(t, n, e))
					},
					"stroke-widthSetter": function(t, e, n) {
						n.stroked = !!t, this[e] = t, c(t) && (t += Kt), this.setAttr("strokeweight", t)
					},
					titleSetter: function(t, e) {
						this.setAttr(e, t)
					},
					visibilitySetter: function(t, e, n) {
						"inherit" === t && (t = Zt), this.shadows && ge(this.shadows, function(n) {
							n.style[e] = t
						}), "DIV" === n.nodeName && (t = t === Vt ? "-999em" : 0, At || (n.style[e] = t ? Zt : Vt), e = "top"), n.style[e] = t
					},
					xSetter: function(t, e, n) {
						this[e] = t, "x" === e ? e = "left" : "y" === e && (e = "top"), this.updateClipping ? (this[e] = t, this.updateClipping()) : n.style[e] = t
					},
					zIndexSetter: function(t, e, n) {
						n.style[e] = t
					}
				}, le.VMLElement = Le = b(q, Le), Le.prototype.ySetter = Le.prototype.widthSetter = Le.prototype.heightSetter = Le.prototype.xSetter;
				var Oe = {
					Element: Le,
					isIE8: jt.indexOf("MSIE 8.0") > -1,
					init: function(t, e, n, i) {
						var o, r, s, l = this;
						if (l.alignedObjects = [], o = l.createElement(Ut).css(a(this.getStyle(i), {
							position: Yt
						})), r = o.element, t.appendChild(o.element), l.isVML = !0, l.box = r, l.boxWrapper = o, l.cache = {}, l.setSize(e, n, !1), !mt.namespaces.hcv) {
							mt.namespaces.add("hcv", "urn:schemas-microsoft-com:vml"), s = "hcv\\:fill, hcv\\:path, hcv\\:shape, hcv\\:stroke{ behavior:url(#default#VML); display: inline-block; } ";
							try {
								mt.createStyleSheet().cssText = s
							} catch (d) {
								mt.styleSheets[0].cssText += s
							}
						}
					},
					isHidden: function() {
						return !this.box.offsetWidth
					},
					clipRect: function(t, e, n, i) {
						var o = this.createElement(),
							r = l(t);
						return a(o, {
							members: [],
							left: (r ? t.x : t) + 1,
							top: (r ? t.y : e) + 1,
							width: (r ? t.width : n) - 1,
							height: (r ? t.height : i) - 1,
							getCSS: function(t) {
								var e = t.element,
									n = e.nodeName,
									i = "shape" === n,
									o = t.inverted,
									r = this,
									s = r.top - (i ? e.offsetTop : 0),
									l = r.left,
									d = l + r.width,
									c = s + r.height,
									p = {
										clip: "rect(" + _t(o ? l : s) + "px," + _t(o ? c : d) + "px," + _t(o ? d : c) + "px," + _t(o ? s : l) + "px)"
									};
								return !o && At && "DIV" === n && a(p, {
									width: d + Kt,
									height: c + Kt
								}), p
							},
							updateClipping: function() {
								ge(o.members, function(t) {
									t.element && t.css(o.getCSS(t))
								})
							}
						})
					},
					color: function(t, e, n, i) {
						var a, o, r, s = this,
							l = /^rgba/,
							d = Qt;
						if (t && t.linearGradient ? r = "gradient" : t && t.radialGradient && (r = "pattern"), r) {
							var c, p, h, u, g, m, f, w, _, b, x, y, k = t.linearGradient || t.radialGradient,
								z = "",
								C = t.stops,
								T = [],
								S = function() {
									o = ['<fill colors="' + T.join(",") + '" opacity="', w, '" o:opacity2="', f, '" type="', r, '" ', z, 'focus="100%" method="any" />'], v(s.prepVML(o), null, null, e)
								};
							if (x = C[0], y = C[C.length - 1], x[0] > 0 && C.unshift([0, x[1]]), y[0] < 1 && C.push([1, y[1]]), ge(C, function(t, e) {
								l.test(t[1]) ? (a = Pe(t[1]), c = a.get("rgb"), p = a.get("a")) : (c = t[1], p = 1), T.push(100 * t[0] + "% " + c), e ? (w = p, _ = c) : (f = p, b = c)
							}), "fill" === n)
								if ("gradient" === r) h = k.x1 || k[0] || 0, u = k.y1 || k[1] || 0, g = k.x2 || k[2] || 0, m = k.y2 || k[3] || 0, z = 'angle="' + (90 - 180 * wt.atan((m - u) / (g - h)) / Tt) + '"', S();
								else {
									var j, I = k.r,
										P = 2 * I,
										A = 2 * I,
										E = k.cx,
										L = k.cy,
										O = e.radialReference,
										N = function() {
											O && (j = i.getBBox(), E += (O[0] - j.x) / j.width - .5, L += (O[1] - j.y) / j.height - .5, P *= O[2] / j.width, A *= O[2] / j.height), z = 'src="' + G.global.VMLRadialGradientURL + '" size="' + P + "," + A + '" origin="0.5,0.5" position="' + E + "," + L + '" color2="' + b + '" ', S()
										};
									i.added ? N() : i.onAdd = N, d = _
								} else d = c
						} else if (l.test(t) && "IMG" !== e.tagName) a = Pe(t), o = ["<", n, ' opacity="', a.get("a"), '"/>'], v(this.prepVML(o), null, null, e), d = a.get("rgb");
						else {
							var D = e.getElementsByTagName(n);
							D.length && (D[0].opacity = 1, D[0].type = "solid"), d = t
						}
						return d
					},
					prepVML: function(t) {
						var e = "display:inline-block;behavior:url(#default#VML);",
							n = this.isIE8;
						return t = t.join(""), n ? (t = t.replace("/>", ' xmlns="urn:schemas-microsoft-com:vml" />'), t = -1 === t.indexOf('style="') ? t.replace("/>", ' style="' + e + '" />') : t.replace('style="', 'style="' + e)) : t = t.replace("<", "<hcv:"), t
					},
					text: Ae.prototype.html,
					path: function(t) {
						var e = {
							coordsize: "10 10"
						};
						return d(t) ? e.d = t : l(t) && a(e, t), this.createElement("shape").attr(e)
					},
					circle: function(t, e, n) {
						var i = this.symbol("circle");
						return l(t) && (n = t.r, e = t.y, t = t.x), i.isCircle = !0, i.r = n, i.attr({
							x: t,
							y: e
						})
					},
					g: function(t) {
						var e, n;
						return t && (n = {
							className: Jt + t,
							"class": Jt + t
						}), e = this.createElement(Ut).attr(n)
					},
					image: function(t, e, n, i, a) {
						var o = this.createElement("img").attr({
							src: t
						});
						return arguments.length > 1 && o.attr({
							x: e,
							y: n,
							width: i,
							height: a
						}), o
					},
					createElement: function(t) {
						return "rect" === t ? this.symbol(t) : Ae.prototype.createElement.call(this, t)
					},
					invertChild: function(t, e) {
						var n = this,
							i = e.style,
							a = "IMG" === t.tagName && t.style;
						_(t, {
							flip: "x",
							left: r(i.width) - (a ? r(a.top) : 1),
							top: r(i.height) - (a ? r(a.left) : 1),
							rotation: -90
						}), ge(t.childNodes, function(e) {
							n.invertChild(e, t)
						})
					},
					symbols: {
						arc: function(t, e, n, i, a) {
							var o, r = a.start,
								s = a.end,
								l = a.r || n || i,
								d = a.innerR,
								c = zt(r),
								p = Ct(r),
								h = zt(s),
								u = Ct(s);
							return s - r === 0 ? ["x"] : (o = ["wa", t - l, e - l, t + l, e + l, t + l * c, e + l * p, t + l * h, e + l * u], a.open && !d && o.push("e", te, t, e), o.push("at", t - d, e - d, t + d, e + d, t + d * h, e + d * u, t + d * c, e + d * p, "x", "e"), o.isArc = !0, o)
						},
						circle: function(t, e, n, i, a) {
							return a && (n = i = 2 * a.r), a && a.isCircle && (t -= n / 2, e -= i / 2), ["wa", t, e, t + n, e + i, t + n, e + i / 2, t + n, e + i / 2, "e"]
						},
						rect: function(t, e, n, i, a) {
							return Ae.prototype.symbols[g(a) && a.r ? "callout" : "square"].call(0, t, e, n, i, a)
						}
					}
				};
				le.VMLRenderer = Ee = function() {
					this.init.apply(this, arguments)
				}, Ee.prototype = o(Ae.prototype, Oe), $ = Ee
			}
			Ae.prototype.measureSpanWidth = function(t, e) {
				var n, i = mt.createElement("span"),
					a = mt.createTextNode(t);
				return i.appendChild(a), _(i, e), this.box.appendChild(i), n = i.offsetWidth, E(i), n
			};
			var Ne, De;
			qt && (le.CanVGRenderer = Ne = function() {
				Nt = "http://www.w3.org/1999/xhtml"
			}, Ne.prototype.symbols = {}, De = function() {
				function t() {
					var t, n = e.length;
					for (t = 0; n > t; t++) e[t]();
					e = []
				}
				var e = [];
				return {
					push: function(n, i) {
						0 === e.length && he(i, t), e.push(n)
					}
				}
			}(), $ = Ne), B.prototype = {
				addLabel: function() {
					var t, e, n, i, o = this,
						r = o.axis,
						s = r.options,
						l = r.chart,
						d = r.horiz,
						p = r.categories,
						u = r.names,
						m = o.pos,
						f = s.labels,
						_ = f.rotation,
						v = r.tickPositions,
						b = d && p && !f.step && !f.staggerLines && !f.rotation && l.plotWidth / v.length || !d && (l.margin[3] || .33 * l.chartWidth),
						x = m === v[0],
						y = m === v[v.length - 1],
						k = p ? w(p[m], u[m], m) : m,
						z = o.label,
						C = v.info;
					r.isDatetimeAxis && C && (i = s.dateTimeLabelFormats[C.higherRanks[m] || C.unitName]), o.isFirst = x, o.isLast = y, t = r.labelFormatter.call({
						axis: r,
						chart: l,
						isFirst: x,
						isLast: y,
						dateTimeLabelFormat: i,
						value: r.isLog ? L(h(k)) : k
					}), e = b && {
						width: xt(1, _t(b - 2 * (f.padding || 10))) + Kt
					}, g(z) ? z && z.attr({
						text: t
					}).css(e) : (n = {
						align: r.labelAlign
					}, c(_) && (n.rotation = _), b && f.ellipsis && (e.HcHeight = r.len / v.length), o.label = z = g(t) && f.enabled ? l.renderer.text(t, 0, 0, f.useHTML).attr(n).css(a(e, f.style)).add(r.labelGroup) : null, r.tickBaseline = l.renderer.fontMetrics(f.style.fontSize, z).b, _ && 2 === r.side && (r.tickBaseline *= zt(_ * St))), o.yOffset = z ? w(f.y, r.tickBaseline + (2 === r.side ? 8 : -(z.getBBox().height / 2))) : 0
				},
				getLabelSize: function() {
					var t = this.label,
						e = this.axis;
					return t ? t.getBBox()[e.horiz ? "height" : "width"] : 0
				},
				getLabelSides: function() {
					var t = this.label.getBBox(),
						e = this.axis,
						n = e.horiz,
						i = e.options,
						a = i.labels,
						o = n ? t.width : t.height,
						r = n ? a.x - o * {
							left: 0,
							center: .5,
							right: 1
						}[e.labelAlign] : 0,
						s = n ? o + r : o;
					return [r, s]
				},
				handleOverflow: function(t, e) {
					var n, i, a, o, r, s = !0,
						l = this.axis,
						d = this.isFirst,
						c = this.isLast,
						p = l.horiz,
						h = p ? e.x : e.y,
						u = l.reversed,
						g = l.tickPositions,
						m = this.getLabelSides(),
						f = m[0],
						w = m[1],
						_ = this.label.line,
						v = _ || 0,
						b = l.labelEdge,
						x = l.justifyLabels && (d || c);
					if (b[v] === H || h + f > b[v] ? b[v] = h + w : x || (s = !1), x) {
						r = l.justifyToPlot, n = r ? l.pos : 0, i = r ? n + l.len : l.chart.chartWidth;
						do t += d ? 1 : -1, a = l.ticks[g[t]]; while (g[t] && (!a || !a.label || a.label.line !== _));
						o = a && a.label.xy && a.label.xy.x + a.getLabelSides()[d ? 0 : 1], d && !u || c && u ? n > h + f && (h = n - f, a && h + w > o && (s = !1)) : h + w > i && (h = i - w, a && o > h + f && (s = !1)), e.x = h
					}
					return s
				},
				getPosition: function(t, e, n, i) {
					var a = this.axis,
						o = a.chart,
						r = i && o.oldChartHeight || o.chartHeight;
					return {
						x: t ? a.translate(e + n, null, null, i) + a.transB : a.left + a.offset + (a.opposite ? (i && o.oldChartWidth || o.chartWidth) - a.right - a.left : 0),
						y: t ? r - a.bottom + a.offset - (a.opposite ? a.height : 0) : r - a.translate(e + n, null, null, i) - a.transB
					}
				},
				getLabelPosition: function(t, e, n, i, a, o, r, s) {
					var l = this.axis,
						d = l.transA,
						c = l.reversed,
						p = l.staggerLines;
					return t = t + a.x - (o && i ? o * d * (c ? -1 : 1) : 0), e = e + this.yOffset - (o && !i ? o * d * (c ? 1 : -1) : 0), p && (n.line = r / (s || 1) % p, e += n.line * (l.labelOffset / p)), {
						x: t,
						y: e
					}
				},
				getMarkPath: function(t, e, n, i, a, o) {
					return o.crispLine([te, t, e, ee, t + (a ? 0 : -n), e + (a ? n : 0)], i)
				},
				render: function(t, e, n) {
					var i, a, o, r = this,
						s = r.axis,
						l = s.options,
						d = s.chart,
						c = d.renderer,
						p = s.horiz,
						h = r.type,
						u = r.label,
						g = r.pos,
						m = l.labels,
						f = r.gridLine,
						_ = h ? h + "Grid" : "grid",
						v = h ? h + "Tick" : "tick",
						b = l[_ + "LineWidth"],
						x = l[_ + "LineColor"],
						y = l[_ + "LineDashStyle"],
						k = l[v + "Length"],
						z = l[v + "Width"] || 0,
						C = l[v + "Color"],
						T = l[v + "Position"],
						S = r.mark,
						j = m.step,
						I = !0,
						P = s.tickmarkOffset,
						A = r.getPosition(p, g, P, e),
						E = A.x,
						L = A.y,
						O = p && E === s.pos + s.len || !p && L === s.pos ? -1 : 1;
					n = w(n, 1), this.isActive = !0, b && (i = s.getPlotLinePath(g + P, b * O, e, !0), f === H && (o = {
						stroke: x,
						"stroke-width": b
					}, y && (o.dashstyle = y), h || (o.zIndex = 1), e && (o.opacity = 0), r.gridLine = f = b ? c.path(i).attr(o).add(s.gridGroup) : null), !e && f && i && f[r.isNew ? "attr" : "animate"]({
						d: i,
						opacity: n
					})), z && k && ("inside" === T && (k = -k), s.opposite && (k = -k), a = r.getMarkPath(E, L, k, z * O, p, c), S ? S.animate({
						d: a,
						opacity: n
					}) : r.mark = c.path(a).attr({
						stroke: C,
						"stroke-width": z,
						opacity: n
					}).add(s.axisGroup)), u && !isNaN(E) && (u.xy = A = r.getLabelPosition(E, L, u, p, m, P, t, j), r.isFirst && !r.isLast && !w(l.showFirstLabel, 1) || r.isLast && !r.isFirst && !w(l.showLastLabel, 1) ? I = !1 : s.isRadial || m.step || m.rotation || e || 0 === n || (I = r.handleOverflow(t, A)), j && t % j && (I = !1), I && !isNaN(A.y) ? (A.opacity = n, u[r.isNew ? "attr" : "animate"](A), r.isNew = !1) : u.attr("y", -9999))
				},
				destroy: function() {
					A(this, this.axis)
				}
			}, le.PlotLineOrBand = function(t, e) {
				this.axis = t, e && (this.options = e, this.id = e.id)
			}, le.PlotLineOrBand.prototype = {
				render: function() {
					var t, e, n, i, a, r, s = this,
						l = s.axis,
						d = l.horiz,
						c = (l.pointRange || 0) / 2,
						h = s.options,
						u = h.label,
						m = s.label,
						f = h.width,
						w = h.to,
						_ = h.from,
						v = g(_) && g(w),
						b = h.value,
						x = h.dashStyle,
						y = s.svgElem,
						k = [],
						z = h.color,
						C = h.zIndex,
						T = h.events,
						S = {},
						j = l.chart.renderer;
					if (l.isLog && (_ = p(_), w = p(w), b = p(b)), f) k = l.getPlotLinePath(b, f), S = {
						stroke: z,
						"stroke-width": f
					}, x && (S.dashstyle = x);
					else {
						if (!v) return;
						_ = xt(_, l.min - c), w = yt(w, l.max + c), k = l.getPlotBandPath(_, w, h), z && (S.fill = z), h.borderWidth && (S.stroke = h.borderColor, S["stroke-width"] = h.borderWidth)
					} if (g(C) && (S.zIndex = C), y) k ? y.animate({
						d: k
					}, null, y.onGetPath) : (y.hide(), y.onGetPath = function() {
						y.show()
					}, m && (s.label = m = m.destroy()));
					else if (k && k.length && (s.svgElem = y = j.path(k).attr(S).add(), T)) {
						t = function(t) {
							y.on(t, function(e) {
								T[t].apply(s, [e])
							})
						};
						for (e in T) t(e)
					}
					return u && g(u.text) && k && k.length && l.width > 0 && l.height > 0 ? (u = o({
						align: d && v && "center",
						x: d ? !v && 4 : 10,
						verticalAlign: !d && v && "middle",
						y: d ? v ? 16 : 10 : v ? 6 : -4,
						rotation: d && !v && 90
					}, u), m || (S = {
						align: u.textAlign || u.align,
						rotation: u.rotation
					}, g(C) && (S.zIndex = C), s.label = m = j.text(u.text, 0, 0, u.useHTML).attr(S).css(u.style).add()), n = [k[1], k[4], v ? k[6] : k[1]], i = [k[2], k[5], v ? k[7] : k[2]], a = I(n), r = I(i), m.align(u, !1, {
						x: a,
						y: r,
						width: P(n) - a,
						height: P(i) - r
					}), m.show()) : m && m.hide(), s
				},
				destroy: function() {
					u(this.axis.plotLinesAndBands, this), delete this.axis, A(this)
				}
			}, Q = {
				getPlotBandPath: function(t, e) {
					var n = this.getPlotLinePath(e),
						i = this.getPlotLinePath(t);
					return i && n ? i.push(n[4], n[5], n[1], n[2]) : i = null, i
				},
				addPlotBand: function(t) {
					return this.addPlotBandOrLine(t, "plotBands")
				},
				addPlotLine: function(t) {
					return this.addPlotBandOrLine(t, "plotLines")
				},
				addPlotBandOrLine: function(t, e) {
					var n = new le.PlotLineOrBand(this, t).render(),
						i = this.userOptions;
					return n && (e && (i[e] = i[e] || [], i[e].push(t)), this.plotLinesAndBands.push(n)), n
				},
				removePlotBandOrLine: function(t) {
					for (var e = this.plotLinesAndBands, n = this.options, i = this.userOptions, a = e.length; a--;) e[a].id === t && e[a].destroy();
					ge([n.plotLines || [], i.plotLines || [], n.plotBands || [], i.plotBands || []], function(e) {
						for (a = e.length; a--;) e[a].id === t && u(e, e[a])
					})
				}
			}, R.prototype = {
				defaultOptions: {
					dateTimeLabelFormats: {
						millisecond: "%H:%M:%S.%L",
						second: "%H:%M:%S",
						minute: "%H:%M",
						hour: "%H:%M",
						day: "%e. %b",
						week: "%e. %b",
						month: "%b '%y",
						year: "%Y"
					},
					endOnTick: !1,
					gridLineColor: "#C0C0C0",
					labels: ze,
					lineColor: "#C0D0E0",
					lineWidth: 1,
					minPadding: .01,
					maxPadding: .01,
					minorGridLineColor: "#E0E0E0",
					minorGridLineWidth: 1,
					minorTickColor: "#A0A0A0",
					minorTickLength: 2,
					minorTickPosition: "outside",
					startOfWeek: 1,
					startOnTick: !1,
					tickColor: "#C0D0E0",
					tickLength: 10,
					tickmarkPlacement: "between",
					tickPixelInterval: 100,
					tickPosition: "outside",
					tickWidth: 1,
					title: {
						align: "middle",
						style: {
							color: "#707070"
						}
					},
					type: "linear"
				},
				defaultYAxisOptions: {
					endOnTick: !0,
					gridLineWidth: 1,
					tickPixelInterval: 72,
					showLastLabel: !0,
					labels: {
						x: -8,
						y: 3
					},
					lineWidth: 0,
					maxPadding: .05,
					minPadding: .05,
					startOnTick: !0,
					tickWidth: 0,
					title: {
						rotation: 270,
						text: "Values"
					},
					stackLabels: {
						enabled: !1,
						formatter: function() {
							return x(this.total, -1)
						},
						style: ze.style
					}
				},
				defaultLeftAxisOptions: {
					labels: {
						x: -15,
						y: null
					},
					title: {
						rotation: 270
					}
				},
				defaultRightAxisOptions: {
					labels: {
						x: 15,
						y: null
					},
					title: {
						rotation: 90
					}
				},
				defaultBottomAxisOptions: {
					labels: {
						x: 0,
						y: null
					},
					title: {
						rotation: 0
					}
				},
				defaultTopAxisOptions: {
					labels: {
						x: 0,
						y: -15
					},
					title: {
						rotation: 0
					}
				},
				init: function(t, e) {
					var n = e.isX,
						i = this;
					i.horiz = t.inverted ? !n : n, i.isXAxis = n, i.coll = n ? "xAxis" : "yAxis", i.opposite = e.opposite, i.side = e.side || (i.horiz ? i.opposite ? 0 : 2 : i.opposite ? 1 : 3), i.setOptions(e);
					var a = this.options,
						o = a.type,
						r = "datetime" === o;
					i.labelFormatter = a.labels.formatter || i.defaultLabelFormatter, i.userOptions = e, i.minPixelPadding = 0, i.chart = t, i.reversed = a.reversed, i.zoomEnabled = a.zoomEnabled !== !1, i.categories = a.categories || "category" === o, i.names = [], i.isLog = "logarithmic" === o, i.isDatetimeAxis = r, i.isLinked = g(a.linkedTo), i.tickmarkOffset = i.categories && "between" === a.tickmarkPlacement && 1 === w(a.tickInterval, 1) ? .5 : 0, i.ticks = {}, i.labelEdge = [], i.minorTicks = {}, i.plotLinesAndBands = [], i.alternateBands = {}, i.len = 0, i.minRange = i.userMinRange = a.minRange || a.maxZoom, i.range = a.range, i.offset = a.offset || 0, i.stacks = {}, i.oldStacks = {}, i.max = null, i.min = null, i.crosshair = w(a.crosshair, f(t.options.tooltip.crosshairs)[n ? 0 : 1], !1);
					var s, l = i.options.events; - 1 === ue(i, t.axes) && (n && !this.isColorAxis ? t.axes.splice(t.xAxis.length, 0, i) : t.axes.push(i), t[i.coll].push(i)), i.series = i.series || [], t.inverted && n && i.reversed === H && (i.reversed = !0), i.removePlotBand = i.removePlotBandOrLine, i.removePlotLine = i.removePlotBandOrLine;
					for (s in l) _e(i, s, l[s]);
					i.isLog && (i.val2lin = p, i.lin2val = h)
				},
				setOptions: function(t) {
					this.options = o(this.defaultOptions, this.isXAxis ? {} : this.defaultYAxisOptions, [this.defaultTopAxisOptions, this.defaultRightAxisOptions, this.defaultBottomAxisOptions, this.defaultLeftAxisOptions][this.side], o(G[this.coll], t))
				},
				defaultLabelFormatter: function() {
					var t, e, n = this.axis,
						i = this.value,
						a = n.categories,
						o = this.dateTimeLabelFormat,
						r = G.lang.numericSymbols,
						s = r && r.length,
						l = n.options.labels.format,
						d = n.isLog ? i : n.tickInterval;
					if (l) e = C(l, this);
					else if (a) e = i;
					else if (o) e = Y(o, i);
					else if (s && d >= 1e3)
						for (; s-- && e === H;) t = Math.pow(1e3, s + 1), d >= t && null !== r[s] && (e = x(i / t, -1) + r[s]);
					return e === H && (e = kt(i) >= 1e4 ? x(i, 0) : x(i, -1, H, "")), e
				},
				getSeriesExtremes: function() {
					var t = this,
						e = t.chart;
					t.hasVisibleSeries = !1, t.dataMin = t.dataMax = t.ignoreMinPadding = t.ignoreMaxPadding = null, t.buildStacks && t.buildStacks(), ge(t.series, function(n) {
						if (n.visible || !e.options.chart.ignoreHiddenSeries) {
							var i, a, o, r = n.options,
								s = r.threshold;
							t.hasVisibleSeries = !0, t.isLog && 0 >= s && (s = null), t.isXAxis ? (i = n.xData, i.length && (t.dataMin = yt(w(t.dataMin, i[0]), I(i)), t.dataMax = xt(w(t.dataMax, i[0]), P(i)))) : (n.getExtremes(), o = n.dataMax, a = n.dataMin, g(a) && g(o) && (t.dataMin = yt(w(t.dataMin, a), a), t.dataMax = xt(w(t.dataMax, o), o)), g(s) && (t.dataMin >= s ? (t.dataMin = s, t.ignoreMinPadding = !0) : t.dataMax < s && (t.dataMax = s, t.ignoreMaxPadding = !0)))
						}
					})
				},
				translate: function(t, e, n, i, a, o) {
					var r, s = this,
						l = 1,
						d = 0,
						p = i ? s.oldTransA : s.transA,
						h = i ? s.oldMin : s.min,
						u = s.minPixelPadding,
						g = (s.options.ordinal || s.isLog && a) && s.lin2val;
					return p || (p = s.transA), n && (l *= -1, d = s.len), s.reversed && (l *= -1, d -= l * (s.sector || s.len)), e ? (t = t * l + d, t -= u, r = t / p + h, g && (r = s.lin2val(r))) : (g && (t = s.val2lin(t)), "between" === o && (o = .5), r = l * (t - h) * p + d + l * u + (c(o) ? p * o * s.pointRange : 0)), r
				},
				toPixels: function(t, e) {
					return this.translate(t, !1, !this.horiz, null, !0) + (e ? 0 : this.pos)
				},
				toValue: function(t, e) {
					return this.translate(t - (e ? 0 : this.pos), !0, !this.horiz, null, !0)
				},
				getPlotLinePath: function(t, e, n, i, a) {
					var o, r, s, l, d, c = this,
						p = c.chart,
						h = c.left,
						u = c.top,
						g = n && p.oldChartHeight || p.chartHeight,
						m = n && p.oldChartWidth || p.chartWidth,
						f = c.transB;
					return a = w(a, c.translate(t, null, null, n)), o = s = _t(a + f), r = l = _t(g - a - f), isNaN(a) ? d = !0 : c.horiz ? (r = u, l = g - c.bottom, (h > o || o > h + c.width) && (d = !0)) : (o = h, s = m - c.right, (u > r || r > u + c.height) && (d = !0)), d && !i ? null : p.renderer.crispLine([te, o, r, ee, s, l], e || 1)
				},
				getLinearTickPositions: function(t, e, n) {
					var i, a, o = L(vt(e / t) * t),
						r = L(bt(n / t) * t),
						s = [];
					if (e === n && c(e)) return [e];
					for (i = o; r >= i && (s.push(i), i = L(i + t), i !== a);) a = i;
					return s
				},
				getMinorTickPositions: function() {
					var t, e, n, i = this,
						a = i.options,
						o = i.tickPositions,
						r = i.minorTickInterval,
						s = [];
					if (i.isLog)
						for (n = o.length, e = 1; n > e; e++) s = s.concat(i.getLogTickPositions(r, o[e - 1], o[e], !0));
					else if (i.isDatetimeAxis && "auto" === a.minorTickInterval) s = s.concat(i.getTimeTicks(i.normalizeTimeTickInterval(r), i.min, i.max, a.startOfWeek)), s[0] < i.min && s.shift();
					else
						for (t = i.min + (o[0] - i.min) % r; t <= i.max; t += r) s.push(t);
					return s
				},
				adjustForMinRange: function() {
					var t, e, n, i, a, o, r, s, l = this,
						d = l.options,
						c = l.min,
						p = l.max,
						h = l.dataMax - l.dataMin >= l.minRange;
					if (l.isXAxis && l.minRange === H && !l.isLog && (g(d.min) || g(d.max) ? l.minRange = null : (ge(l.series, function(t) {
						for (a = t.xData, o = t.xIncrement ? 1 : a.length - 1, n = o; n > 0; n--) i = a[n] - a[n - 1], (e === H || e > i) && (e = i)
					}), l.minRange = yt(5 * e, l.dataMax - l.dataMin))), p - c < l.minRange) {
						var u = l.minRange;
						t = (u - p + c) / 2, r = [c - t, w(d.min, c - t)], h && (r[2] = l.dataMin), c = P(r), s = [c + u, w(d.max, c + u)], h && (s[2] = l.dataMax), p = I(s), u > p - c && (r[0] = p - u, r[1] = w(d.min, p - u), c = P(r))
					}
					l.min = c, l.max = p
				},
				setAxisTranslation: function(t) {
					var e, n, i = this,
						a = i.max - i.min,
						o = i.axisPointRange || 0,
						r = 0,
						l = 0,
						d = i.linkedParent,
						c = !!i.categories,
						p = i.transA;
					(i.isXAxis || c || o) && (d ? (r = d.minPointOffset, l = d.pointRangePadding) : ge(i.series, function(t) {
						var n = c ? 1 : i.isXAxis ? t.pointRange : i.axisPointRange || 0,
							d = t.options.pointPlacement,
							p = t.closestPointRange;
						n > a && (n = 0), o = xt(o, n), r = xt(r, s(d) ? 0 : n / 2), l = xt(l, "on" === d ? 0 : n), !t.noSharedTooltip && g(p) && (e = g(e) ? yt(e, p) : p)
					}), n = i.ordinalSlope && e ? i.ordinalSlope / e : 1, i.minPointOffset = r *= n, i.pointRangePadding = l *= n, i.pointRange = yt(o, a), i.closestPointRange = e), t && (i.oldTransA = p), i.translationSlope = i.transA = p = i.len / (a + l || 1), i.transB = i.horiz ? i.left : i.bottom, i.minPixelPadding = p * r
				},
				setTickPositions: function(t) {
					var e, n, i, a, o = this,
						r = o.chart,
						s = o.options,
						l = s.startOnTick,
						d = s.endOnTick,
						h = o.isLog,
						u = o.isDatetimeAxis,
						m = o.isXAxis,
						f = o.isLinked,
						_ = o.options.tickPositioner,
						v = s.maxPadding,
						b = s.minPadding,
						x = s.tickInterval,
						y = s.minTickInterval,
						k = s.tickPixelInterval,
						z = o.categories;
					if (f ? (o.linkedParent = r[o.coll][s.linkedTo], n = o.linkedParent.getExtremes(), o.min = w(n.min, n.dataMin), o.max = w(n.max, n.dataMax), s.type !== o.linkedParent.options.type && K(11, 1)) : (o.min = w(o.userMin, s.min, o.dataMin), o.max = w(o.userMax, s.max, o.dataMax)), h && (!t && yt(o.min, w(o.dataMin, o.min)) <= 0 && K(10, 1), o.min = L(p(o.min)), o.max = L(p(o.max))), o.range && g(o.max) && (o.userMin = o.min = xt(o.min, o.max - o.range), o.userMax = o.max, o.range = null), o.beforePadding && o.beforePadding(), o.adjustForMinRange(), z || o.axisPointRange || o.usePercentage || f || !g(o.min) || !g(o.max) || (e = o.max - o.min, e && (g(s.min) || g(o.userMin) || !b || !(o.dataMin < 0) && o.ignoreMinPadding || (o.min -= e * b), g(s.max) || g(o.userMax) || !v || !(o.dataMax > 0) && o.ignoreMaxPadding || (o.max += e * v))), c(s.floor) && (o.min = xt(o.min, s.floor)), c(s.ceiling) && (o.max = yt(o.max, s.ceiling)), o.min === o.max || void 0 === o.min || void 0 === o.max ? o.tickInterval = 1 : f && !x && k === o.linkedParent.options.tickPixelInterval ? o.tickInterval = o.linkedParent.tickInterval : (o.tickInterval = w(x, z ? 1 : (o.max - o.min) * k / xt(o.len, k)), !g(x) && o.len < k && !this.isRadial && !this.isLog && !z && l && d && (a = !0, o.tickInterval /= 4)), m && !t && ge(o.series, function(t) {
						t.processData(o.min !== o.oldMin || o.max !== o.oldMax)
					}), o.setAxisTranslation(!0), o.beforeSetTickPositions && o.beforeSetTickPositions(), o.postProcessTickInterval && (o.tickInterval = o.postProcessTickInterval(o.tickInterval)), o.pointRange && (o.tickInterval = xt(o.pointRange, o.tickInterval)), !x && o.tickInterval < y && (o.tickInterval = y), u || h || x || (o.tickInterval = S(o.tickInterval, null, T(o.tickInterval), w(s.allowDecimals, !(o.tickInterval > 1 && o.tickInterval < 5 && o.max > 1e3 && o.max < 9999)))), o.minorTickInterval = "auto" === s.minorTickInterval && o.tickInterval ? o.tickInterval / 5 : s.minorTickInterval, o.tickPositions = i = s.tickPositions ? [].concat(s.tickPositions) : _ && _.apply(o, [o.min, o.max]), i || (!o.ordinalPositions && (o.max - o.min) / o.tickInterval > xt(2 * o.len, 200) && K(19, !0), i = u ? o.getTimeTicks(o.normalizeTimeTickInterval(o.tickInterval, s.units), o.min, o.max, s.startOfWeek, o.ordinalPositions, o.closestPointRange, !0) : h ? o.getLogTickPositions(o.tickInterval, o.min, o.max) : o.getLinearTickPositions(o.tickInterval, o.min, o.max), a && i.splice(1, i.length - 2), o.tickPositions = i), !f) {
						var C, j = i[0],
							I = i[i.length - 1],
							P = o.minPointOffset || 0;
						l ? o.min = j : o.min - P > j && i.shift(), d ? o.max = I : o.max + P < I && i.pop(), 0 === i.length && g(j) && i.push((I + j) / 2), 1 === i.length && (C = kt(o.max) > 1e13 ? 1 : .001, o.min -= C, o.max += C)
					}
				},
				setMaxTicks: function() {
					var t = this.chart,
						e = t.maxTicks || {},
						n = this.tickPositions,
						i = this._maxTicksKey = [this.coll, this.pos, this.len].join("-");
					!this.isLinked && !this.isDatetimeAxis && n && n.length > (e[i] || 0) && this.options.alignTicks !== !1 && (e[i] = n.length), t.maxTicks = e
				},
				adjustTickAmount: function() {
					var t = this,
						e = t.chart,
						n = t._maxTicksKey,
						i = t.tickPositions,
						a = e.maxTicks;
					if (a && a[n] && !t.isDatetimeAxis && !t.categories && !t.isLinked && t.options.alignTicks !== !1 && this.min !== H) {
						var o, r = t.tickAmount,
							s = i.length;
						if (t.tickAmount = o = a[n], o > s) {
							for (; i.length < o;) i.push(L(i[i.length - 1] + t.tickInterval));
							t.transA *= (s - 1) / (o - 1), t.max = i[i.length - 1]
						}
						g(r) && o !== r && (t.isDirty = !0)
					}
				},
				setScale: function() {
					var t, e, n, i, a = this,
						o = a.stacks;
					if (a.oldMin = a.min, a.oldMax = a.max, a.oldAxisLength = a.len, a.setAxisSize(), i = a.len !== a.oldAxisLength, ge(a.series, function(t) {
						(t.isDirtyData || t.isDirty || t.xAxis.isDirty) && (n = !0)
					}), i || n || a.isLinked || a.forceRedraw || a.userMin !== a.oldUserMin || a.userMax !== a.oldUserMax) {
						if (!a.isXAxis)
							for (t in o)
								for (e in o[t]) o[t][e].total = null, o[t][e].cum = 0;
						a.forceRedraw = !1, a.getSeriesExtremes(), a.setTickPositions(), a.oldUserMin = a.userMin, a.oldUserMax = a.userMax, a.isDirty || (a.isDirty = i || a.min !== a.oldMin || a.max !== a.oldMax)
					} else if (!a.isXAxis) {
						a.oldStacks && (o = a.stacks = a.oldStacks);
						for (t in o)
							for (e in o[t]) o[t][e].cum = o[t][e].total
					}
					a.setMaxTicks()
				},
				setExtremes: function(t, e, n, i, o) {
					var r = this,
						s = r.chart;
					n = w(n, !0), o = a(o, {
						min: t,
						max: e
					}), be(r, "setExtremes", o, function() {
						r.userMin = t, r.userMax = e, r.eventArgs = o, r.isDirtyExtremes = !0, n && s.redraw(i)
					})
				},
				zoom: function(t, e) {
					var n = this.dataMin,
						i = this.dataMax,
						a = this.options;
					return this.allowZoomOutside || (g(n) && t <= yt(n, w(a.min, n)) && (t = H), g(i) && e >= xt(i, w(a.max, i)) && (e = H)), this.displayBtn = t !== H || e !== H, this.setExtremes(t, e, !1, H, {
						trigger: "zoom"
					}), !0
				},
				setAxisSize: function() {
					var t = this.chart,
						e = this.options,
						n = e.offsetLeft || 0,
						i = e.offsetRight || 0,
						a = this.horiz,
						o = w(e.width, t.plotWidth - n + i),
						r = w(e.height, t.plotHeight),
						s = w(e.top, t.plotTop),
						l = w(e.left, t.plotLeft + n),
						d = /%$/;
					d.test(r) && (r = parseInt(r, 10) / 100 * t.plotHeight), d.test(s) && (s = parseInt(s, 10) / 100 * t.plotHeight + t.plotTop), this.left = l, this.top = s, this.width = o, this.height = r, this.bottom = t.chartHeight - r - s, this.right = t.chartWidth - o - l, this.len = xt(a ? o : r, 0), this.pos = a ? l : s
				},
				getExtremes: function() {
					var t = this,
						e = t.isLog;
					return {
						min: e ? L(h(t.min)) : t.min,
						max: e ? L(h(t.max)) : t.max,
						dataMin: t.dataMin,
						dataMax: t.dataMax,
						userMin: t.userMin,
						userMax: t.userMax
					}
				},
				getThreshold: function(t) {
					var e = this,
						n = e.isLog,
						i = n ? h(e.min) : e.min,
						a = n ? h(e.max) : e.max;
					return i > t || null === t ? t = i : t > a && (t = a), e.translate(t, 0, 1, 0, 1)
				},
				autoLabelAlign: function(t) {
					var e, n = (w(t, 0) - 90 * this.side + 720) % 360;
					return e = n > 15 && 165 > n ? "right" : n > 195 && 345 > n ? "left" : "center"
				},
				getOffset: function() {
					var t, e, n, i, a, o, r, s, l, d, c, p, h, u, m, f = this,
						_ = f.chart,
						v = _.renderer,
						b = f.options,
						x = f.tickPositions,
						y = f.ticks,
						k = f.horiz,
						z = f.side,
						C = _.inverted ? [1, 0, 3, 2][z] : z,
						T = 0,
						S = 0,
						j = b.title,
						I = b.labels,
						P = 0,
						A = _.axisOffset,
						E = _.clipOffset,
						L = [-1, 1, 1, -1][z],
						O = 1,
						N = w(I.maxStaggerLines, 5);
					if (f.hasData = t = f.hasVisibleSeries || g(f.min) && g(f.max) && !!x, f.showAxis = e = t || w(b.showEmpty, !0), f.staggerLines = f.horiz && I.staggerLines, f.axisGroup || (f.gridGroup = v.g("grid").attr({
						zIndex: b.gridZIndex || 1
					}).add(), f.axisGroup = v.g("axis").attr({
						zIndex: b.zIndex || 2
					}).add(), f.labelGroup = v.g("axis-labels").attr({
						zIndex: I.zIndex || 7
					}).addClass(Jt + f.coll.toLowerCase() + "-labels").add()), t || f.isLinked) {
						if (f.labelAlign = w(I.align || f.autoLabelAlign(I.rotation)), ge(x, function(t) {
							y[t] ? y[t].addLabel() : y[t] = new B(f, t)
						}), f.horiz && !f.staggerLines && N && !I.rotation) {
							for (r = f.reversed ? [].concat(x).reverse() : x; N > O;) {
								for (s = [], l = !1, o = 0; o < r.length; o++) d = r[o], c = y[d].label && y[d].label.getBBox(), h = c ? c.width : 0, u = o % O, h && (p = f.translate(d), s[u] !== H && p < s[u] && (l = !0), s[u] = p + h);
								if (!l) break;
								O++
							}
							O > 1 && (f.staggerLines = O)
						}
						ge(x, function(t) {
							(0 === z || 2 === z || {
								1: "left",
								3: "right"
							}[z] === f.labelAlign) && (P = xt(y[t].getLabelSize(), P))
						}), f.staggerLines && (P *= f.staggerLines, f.labelOffset = P)
					} else
						for (a in y) y[a].destroy(), delete y[a];
					j && j.text && j.enabled !== !1 && (f.axisTitle || (f.axisTitle = v.text(j.text, 0, 0, j.useHTML).attr({
						zIndex: 7,
						rotation: j.rotation || 0,
						align: j.textAlign || {
							low: "left",
							middle: "center",
							high: "right"
						}[j.align]
					}).addClass(Jt + this.coll.toLowerCase() + "-title").css(j.style).add(f.axisGroup), f.axisTitle.isNew = !0), e && (T = f.axisTitle.getBBox()[k ? "height" : "width"], n = j.offset, S = g(n) ? 0 : w(j.margin, k ? 5 : 10)), f.axisTitle[e ? "show" : "hide"]()), f.offset = L * w(b.offset, A[z]), m = 2 === z ? f.tickBaseline : 0, i = P + S + (P && L * (k ? w(I.y, f.tickBaseline + 8) : I.x) - m), f.axisTitleMargin = w(n, i), A[z] = xt(A[z], f.axisTitleMargin + T + L * f.offset, i), E[C] = xt(E[C], 2 * vt(b.lineWidth / 2))
				},
				getLinePath: function(t) {
					var e = this.chart,
						n = this.opposite,
						i = this.offset,
						a = this.horiz,
						o = this.left + (n ? this.width : 0) + i,
						r = e.chartHeight - this.bottom - (n ? this.height : 0) + i;
					return n && (t *= -1), e.renderer.crispLine([te, a ? this.left : o, a ? r : this.top, ee, a ? e.chartWidth - this.right : o, a ? r : e.chartHeight - this.bottom], t)
				},
				getTitlePosition: function() {
					var t = this.horiz,
						e = this.left,
						n = this.top,
						i = this.len,
						a = this.options.title,
						o = t ? e : n,
						s = this.opposite,
						l = this.offset,
						d = r(a.style.fontSize || 12),
						c = {
							low: o + (t ? 0 : i),
							middle: o + i / 2,
							high: o + (t ? i : 0)
						}[a.align],
						p = (t ? n + this.height : e) + (t ? 1 : -1) * (s ? -1 : 1) * this.axisTitleMargin + (2 === this.side ? d : 0);
					return {
						x: t ? c : p + (s ? this.width : 0) + l + (a.x || 0),
						y: t ? p - (s ? this.height : 0) + l : c + (a.y || 0)
					}
				},
				render: function() {
					var t, e, n, i, a = this,
						o = a.horiz,
						r = a.reversed,
						s = a.chart,
						l = s.renderer,
						d = a.options,
						c = a.isLog,
						p = a.isLinked,
						u = a.tickPositions,
						m = a.axisTitle,
						f = a.ticks,
						w = a.minorTicks,
						_ = a.alternateBands,
						v = d.stackLabels,
						b = d.alternateGridColor,
						x = a.tickmarkOffset,
						y = d.lineWidth,
						k = s.hasRendered,
						z = k && g(a.oldMin) && !isNaN(a.oldMin),
						C = a.hasData,
						T = a.showAxis,
						S = d.labels.overflow,
						j = a.justifyLabels = o && S !== !1;
					a.labelEdge.length = 0, a.justifyToPlot = "justify" === S, ge([f, w, _], function(t) {
						var e;
						for (e in t) t[e].isActive = !1
					}), (C || p) && (a.minorTickInterval && !a.categories && ge(a.getMinorTickPositions(), function(t) {
						w[t] || (w[t] = new B(a, t, "minor")), z && w[t].isNew && w[t].render(null, !0), w[t].render(null, !1, 1)
					}), u.length && (t = u.slice(), (o && r || !o && !r) && t.reverse(), j && (t = t.slice(1).concat([t[0]])), ge(t, function(e, n) {
						j && (n = n === t.length - 1 ? 0 : n + 1), (!p || e >= a.min && e <= a.max) && (f[e] || (f[e] = new B(a, e)), z && f[e].isNew && f[e].render(n, !0, .1), f[e].render(n))
					}), x && 0 === a.min && (f[-1] || (f[-1] = new B(a, -1, null, !0)), f[-1].render(-1))), b && ge(u, function(t, e) {
						e % 2 === 0 && t < a.max && (_[t] || (_[t] = new le.PlotLineOrBand(a)), n = t + x, i = u[e + 1] !== H ? u[e + 1] + x : a.max, _[t].options = {
							from: c ? h(n) : n,
							to: c ? h(i) : i,
							color: b
						}, _[t].render(), _[t].isActive = !0)
					}), a._addedPlotLB || (ge((d.plotLines || []).concat(d.plotBands || []), function(t) {
						a.addPlotBandOrLine(t)
					}), a._addedPlotLB = !0)), ge([f, w, _], function(t) {
						var e, n, i = [],
							a = V ? V.duration || 500 : 0,
							o = function() {
								for (n = i.length; n--;) t[i[n]] && !t[i[n]].isActive && (t[i[n]].destroy(), delete t[i[n]])
							};
						for (e in t) t[e].isActive || (t[e].render(e, !1, 0), t[e].isActive = !1, i.push(e));
						t !== _ && s.hasRendered && a ? a && setTimeout(o, a) : o()
					}), y && (e = a.getLinePath(y), a.axisLine ? a.axisLine.animate({
						d: e
					}) : a.axisLine = l.path(e).attr({
						stroke: d.lineColor,
						"stroke-width": y,
						zIndex: 7
					}).add(a.axisGroup), a.axisLine[T ? "show" : "hide"]()), m && T && (m[m.isNew ? "attr" : "animate"](a.getTitlePosition()), m.isNew = !1), v && v.enabled && a.renderStackTotals(), a.isDirty = !1
				},
				redraw: function() {
					this.render(), ge(this.plotLinesAndBands, function(t) {
						t.render()
					}), ge(this.series, function(t) {
						t.isDirty = !0
					})
				},
				destroy: function(t) {
					var e, n, i = this,
						a = i.stacks,
						o = i.plotLinesAndBands;
					t || ve(i);
					for (e in a) A(a[e]), a[e] = null;
					for (ge([i.ticks, i.minorTicks, i.alternateBands], function(t) {
						A(t)
					}), n = o.length; n--;) o[n].destroy();
					ge(["stackTotalGroup", "axisLine", "axisTitle", "axisGroup", "cross", "gridGroup", "labelGroup"], function(t) {
						i[t] && (i[t] = i[t].destroy())
					}), this.cross && this.cross.destroy()
				},
				drawCrosshair: function(t, e) {
					if (this.crosshair) {
						if ((g(e) || !w(this.crosshair.snap, !0)) === !1) return void this.hideCrosshair();
						var n, i, a = this.crosshair,
							o = a.animation;
						if (w(a.snap, !0) ? g(e) && (i = this.chart.inverted != this.horiz ? e.plotX : this.len - e.plotY) : i = this.horiz ? t.chartX - this.pos : this.len - t.chartY + this.pos, n = this.isRadial ? this.getPlotLinePath(this.isXAxis ? e.x : w(e.stackY, e.y)) : this.getPlotLinePath(null, null, null, null, i), null === n) return void this.hideCrosshair();
						if (this.cross) this.cross.attr({
							visibility: Zt
						})[o ? "animate" : "attr"]({
							d: n
						}, o);
						else {
							var r = {
								"stroke-width": a.width || 1,
								stroke: a.color || "#C0C0C0",
								zIndex: a.zIndex || 2
							};
							a.dashStyle && (r.dashstyle = a.dashStyle), this.cross = this.chart.renderer.path(n).attr(r).add()
						}
					}
				},
				hideCrosshair: function() {
					this.cross && this.cross.hide()
				}
			}, a(R.prototype, Q), R.prototype.getTimeTicks = function(t, e, n, i) {
				var o, r, s = [],
					l = {},
					d = G.global.useUTC,
					c = new tt(e - nt),
					p = t.unitRange,
					h = t.count;
				if (g(e)) {
					p >= Z.second && (c.setMilliseconds(0), c.setSeconds(p >= Z.minute ? 0 : h * vt(c.getSeconds() / h))), p >= Z.minute && c[dt](p >= Z.hour ? 0 : h * vt(c[it]() / h)), p >= Z.hour && c[ct](p >= Z.day ? 0 : h * vt(c[at]() / h)), p >= Z.day && c[pt](p >= Z.month ? 1 : h * vt(c[rt]() / h)), p >= Z.month && (c[ht](p >= Z.year ? 0 : h * vt(c[st]() / h)), r = c[lt]()), p >= Z.year && (r -= r % h, c[ut](r)), p === Z.week && c[pt](c[rt]() - c[ot]() + w(i, 1)), o = 1, nt && (c = new tt(c.getTime() + nt)), r = c[lt]();
					for (var u = c.getTime(), m = c[st](), f = c[rt](), _ = (Z.day + (d ? nt : 60 * c.getTimezoneOffset() * 1e3)) % Z.day; n > u;) s.push(u), p === Z.year ? u = et(r + o * h, 0) : p === Z.month ? u = et(r, m + o * h) : d || p !== Z.day && p !== Z.week ? u += p * h : u = et(r, m, f + o * h * (p === Z.day ? 1 : 7)), o++;
					s.push(u), ge(me(s, function(t) {
						return p <= Z.hour && t % Z.day === _
					}), function(t) {
						l[t] = "day"
					})
				}
				return s.info = a(t, {
					higherRanks: l,
					totalRange: p * h
				}), s
			}, R.prototype.normalizeTimeTickInterval = function(t, e) {
				var n, i, a = e || [
						["millisecond", [1, 2, 5, 10, 20, 25, 50, 100, 200, 500]],
						["second", [1, 2, 5, 10, 15, 30]],
						["minute", [1, 2, 5, 10, 15, 30]],
						["hour", [1, 2, 3, 4, 6, 8, 12]],
						["day", [1, 2]],
						["week", [1, 2]],
						["month", [1, 2, 3, 4, 6]],
						["year", null]
					],
					o = a[a.length - 1],
					r = Z[o[0]],
					s = o[1];
				for (i = 0; i < a.length; i++)
					if (o = a[i], r = Z[o[0]], s = o[1], a[i + 1]) {
						var l = (r * s[s.length - 1] + Z[a[i + 1][0]]) / 2;
						if (l >= t) break
					}
				return r === Z.year && 5 * r > t && (s = [1, 2, 5]), n = S(t / r, s, "year" === o[0] ? xt(T(t / r), 1) : 1), {
					unitRange: r,
					count: n,
					unitName: o[0]
				}
			}, R.prototype.getLogTickPositions = function(t, e, n, i) {
				var a = this,
					o = a.options,
					r = a.len,
					s = [];
				if (i || (a._minorAutoInterval = null), t >= .5) t = _t(t), s = a.getLinearTickPositions(t, e, n);
				else if (t >= .08) {
					var l, d, c, u, g, m, f, _ = vt(e);
					for (l = t > .3 ? [1, 2, 4] : t > .15 ? [1, 2, 4, 6, 8] : [1, 2, 3, 4, 5, 6, 7, 8, 9], d = _; n + 1 > d && !f; d++)
						for (u = l.length, c = 0; u > c && !f; c++) g = p(h(d) * l[c]), g > e && (!i || n >= m) && m !== H && s.push(m), m > n && (f = !0), m = g
				} else {
					var v = h(e),
						b = h(n),
						x = o[i ? "minorTickInterval" : "tickInterval"],
						y = "auto" === x ? null : x,
						k = o.tickPixelInterval / (i ? 5 : 1),
						z = i ? r / a.tickPositions.length : r;
					t = w(y, a._minorAutoInterval, (b - v) * k / (z || 1)), t = S(t, null, T(t)), s = we(a.getLinearTickPositions(t, v, b), p), i || (a._minorAutoInterval = t / 5)
				}
				return i || (a.tickInterval = t), s
			};
			var Me = le.Tooltip = function() {
				this.init.apply(this, arguments);

			};
			Me.prototype = {
				init: function(t, e) {
					var n = e.borderWidth,
						i = e.style,
						a = r(i.padding);
					this.chart = t, this.options = e, this.crosshairs = [], this.now = {
						x: 0,
						y: 0
					}, this.isHidden = !0, this.label = t.renderer.label("", 0, 0, e.shape || "callout", null, null, e.useHTML, null, "tooltip").attr({
						padding: a,
						fill: e.backgroundColor,
						"stroke-width": n,
						r: e.borderRadius,
						zIndex: 8
					}).css(i).css({
						padding: 0
					}).add().attr({
						y: -9999
					}), qt || this.label.shadow(e.shadow), this.shared = e.shared
				},
				destroy: function() {
					this.label && (this.label = this.label.destroy()), clearTimeout(this.hideTimer), clearTimeout(this.tooltipTimeout)
				},
				move: function(t, e, n, i) {
					var o = this,
						r = o.now,
						s = o.options.animation !== !1 && !o.isHidden && (kt(t - r.x) > 1 || kt(e - r.y) > 1),
						l = o.followPointer || o.len > 1;
					a(r, {
						x: s ? (2 * r.x + t) / 3 : t,
						y: s ? (r.y + e) / 2 : e,
						anchorX: l ? H : s ? (2 * r.anchorX + n) / 3 : n,
						anchorY: l ? H : s ? (r.anchorY + i) / 2 : i
					}), o.label.attr(r), s && (clearTimeout(this.tooltipTimeout), this.tooltipTimeout = setTimeout(function() {
						o && o.move(t, e, n, i)
					}, 32))
				},
				hide: function(t) {
					var e, n = this;
					clearTimeout(this.hideTimer), this.isHidden || (e = this.chart.hoverPoints, this.hideTimer = setTimeout(function() {
						n.label.fadeOut(), n.isHidden = !0
					}, w(t, this.options.hideDelay, 500)), e && ge(e, function(t) {
						t.setState()
					}), this.chart.hoverPoints = null)
				},
				getAnchor: function(t, e) {
					var n, i, a = this.chart,
						o = a.inverted,
						r = a.plotTop,
						s = 0,
						l = 0;
					return t = f(t), n = t[0].tooltipPos, this.followPointer && e && (e.chartX === H && (e = a.pointer.normalize(e)), n = [e.chartX - a.plotLeft, e.chartY - r]), n || (ge(t, function(t) {
						i = t.series.yAxis, s += t.plotX, l += (t.plotLow ? (t.plotLow + t.plotHigh) / 2 : t.plotY) + (!o && i ? i.top - r : 0)
					}), s /= t.length, l /= t.length, n = [o ? a.plotWidth - l : s, this.shared && !o && t.length > 1 && e ? e.chartY - r : o ? a.plotHeight - s : l]), we(n, _t)
				},
				getPosition: function(t, e, n) {
					var i, a = this.chart,
						o = this.distance,
						r = {},
						s = ["y", a.chartHeight, e, n.plotY + a.plotTop],
						l = ["x", a.chartWidth, t, n.plotX + a.plotLeft],
						d = n.ttBelow || a.inverted && !n.negative || !a.inverted && n.negative,
						c = function(t, e, n, i) {
							var a = i - o > n,
								s = e > i + o + n,
								l = i - o - n,
								c = i + o;
							if (d && s) r[t] = c;
							else if (!d && a) r[t] = l;
							else if (a) r[t] = l;
							else {
								if (!s) return !1;
								r[t] = c
							}
						},
						p = function(t, e, n, i) {
							return o > i || i > e - o ? !1 : void(r[t] = n / 2 > i ? 1 : i > e - n / 2 ? e - n - 2 : i - n / 2)
						},
						h = function(t) {
							var e = s;
							s = l, l = e, i = t
						},
						u = function() {
							c.apply(0, s) !== !1 ? p.apply(0, l) !== !1 || i || (h(!0), u()) : i ? r.x = r.y = 0 : (h(!0), u())
						};
					return (a.inverted || this.len > 1) && h(), u(), r
				},
				defaultFormatter: function(t) {
					var e, n = this.points || f(this),
						i = n[0].series;
					return e = [t.tooltipHeaderFormatter(n[0])], ge(n, function(t) {
						i = t.series, e.push(i.tooltipFormatter && i.tooltipFormatter(t) || t.point.tooltipFormatter(i.tooltipOptions.pointFormat))
					}), e.push(t.options.footerFormat || ""), e.join("")
				},
				refresh: function(t, e) {
					var n, i, a, o, r, s, l = this,
						d = l.chart,
						c = l.label,
						p = l.options,
						h = {},
						u = [],
						g = p.formatter || l.defaultFormatter,
						m = d.hoverPoints,
						_ = l.shared;
					clearTimeout(this.hideTimer), l.followPointer = f(t)[0].series.tooltipOptions.followPointer, a = l.getAnchor(t, e), n = a[0], i = a[1], !_ || t.series && t.series.noSharedTooltip ? h = t.getLabelConfig() : (d.hoverPoints = t, m && ge(m, function(t) {
						t.setState()
					}), ge(t, function(t) {
						t.setState(ae), u.push(t.getLabelConfig())
					}), h = {
						x: t[0].category,
						y: t[0].y
					}, h.points = u, this.len = u.length, t = t[0]), o = g.call(h, l), s = t.series, this.distance = w(s.tooltipOptions.distance, 16), o === !1 ? this.hide() : (l.isHidden && (ke(c), c.attr("opacity", 1).show()), c.attr({
						text: o
					}), r = p.borderColor || t.color || s.color || "#606060", c.attr({
						stroke: r
					}), l.updatePosition({
						plotX: n,
						plotY: i,
						negative: t.negative,
						ttBelow: t.ttBelow
					}), this.isHidden = !1), be(d, "tooltipRefresh", {
						text: o,
						x: n + d.plotLeft,
						y: i + d.plotTop,
						borderColor: r
					})
				},
				updatePosition: function(t) {
					var e = this.chart,
						n = this.label,
						i = (this.options.positioner || this.getPosition).call(this, n.width, n.height, t);
					this.move(_t(i.x), _t(i.y), t.plotX + e.plotLeft, t.plotY + e.plotTop)
				},
				tooltipHeaderFormatter: function(t) {
					var e, n = t.series,
						i = n.tooltipOptions,
						a = i.dateTimeLabelFormats,
						o = i.xDateFormat,
						r = n.xAxis,
						s = r && "datetime" === r.options.type && c(t.key),
						l = i.headerFormat,
						d = r && r.closestPointRange;
					if (s && !o) {
						if (d) {
							for (e in Z)
								if (Z[e] >= d || Z[e] <= Z.day && t.key % Z[e] > 0) {
									o = a[e];
									break
								}
						} else o = a.day;
						o = o || a.year
					}
					return s && o && (l = l.replace("{point.key}", "{point.key:" + o + "}")), C(l, {
						point: t,
						series: n
					})
				}
			};
			var qe;
			X = mt.documentElement.ontouchstart !== H;
			var Be = le.Pointer = function(t, e) {
				this.init(t, e)
			};
			if (Be.prototype = {
				init: function(t, e) {
					var n, i, a = e.chart,
						o = a.events,
						r = qt ? "" : a.zoomType,
						s = t.inverted;
					this.options = e, this.chart = t, this.zoomX = n = /x/.test(r), this.zoomY = i = /y/.test(r), this.zoomHor = n && !s || i && s, this.zoomVert = i && !s || n && s, this.hasZoom = n || i, this.runChartClick = o && !!o.click, this.pinchDown = [], this.lastValidTouch = {}, le.Tooltip && e.tooltip.enabled && (t.tooltip = new Me(t, e.tooltip), this.followTouchMove = e.tooltip.followTouchMove), this.setDOMEvents()
				},
				normalize: function(t, e) {
					var n, i, o;
					return t = t || window.event, t = xe(t), t.target || (t.target = t.srcElement), o = t.touches ? t.touches.length ? t.touches.item(0) : t.changedTouches[0] : t, e || (this.chartPosition = e = fe(this.chart.container)), o.pageX === H ? (n = xt(t.x, t.clientX - e.left), i = t.y) : (n = o.pageX - e.left, i = o.pageY - e.top), a(t, {
						chartX: _t(n),
						chartY: _t(i)
					})
				},
				getCoordinates: function(t) {
					var e = {
						xAxis: [],
						yAxis: []
					};
					return ge(this.chart.axes, function(n) {
						e[n.isXAxis ? "xAxis" : "yAxis"].push({
							axis: n,
							value: n.toValue(t[n.horiz ? "chartX" : "chartY"])
						})
					}), e
				},
				getIndex: function(t) {
					var e = this.chart;
					return e.inverted ? e.plotHeight + e.plotTop - t.chartY : t.chartX - e.plotLeft
				},
				runPointActions: function(t) {
					var e, n, i, a, o, r, s = this,
						l = s.chart,
						d = l.series,
						c = l.tooltip,
						p = l.hoverPoint,
						h = l.hoverSeries,
						u = l.chartWidth,
						g = s.getIndex(t);
					if (c && s.options.tooltip.shared && (!h || !h.noSharedTooltip)) {
						for (i = [], a = d.length, o = 0; a > o; o++) d[o].visible && d[o].options.enableMouseTracking !== !1 && !d[o].noSharedTooltip && d[o].singularTooltips !== !0 && d[o].tooltipPoints.length && (n = d[o].tooltipPoints[g], n && n.series && (n._dist = kt(g - n.clientX), u = yt(u, n._dist), i.push(n)));
						for (a = i.length; a--;) i[a]._dist > u && i.splice(a, 1);
						i.length && i[0].clientX !== s.hoverX && (c.refresh(i, t), s.hoverX = i[0].clientX)
					}
					e = h && h.tooltipOptions.followPointer, h && h.tracker && !e ? (n = h.tooltipPoints[g], n && n !== p && n.onMouseOver(t)) : c && e && !c.isHidden && (r = c.getAnchor([{}], t), c.updatePosition({
						plotX: r[0],
						plotY: r[1]
					})), c && !s._onDocumentMouseMove && (s._onDocumentMouseMove = function(t) {
						Ft[qe] && Ft[qe].pointer.onDocumentMouseMove(t)
					}, _e(mt, "mousemove", s._onDocumentMouseMove)), ge(l.axes, function(e) {
						e.drawCrosshair(t, w(n, p))
					})
				},
				reset: function(t, e) {
					var n = this,
						i = n.chart,
						a = i.hoverSeries,
						o = i.hoverPoint,
						r = i.tooltip,
						s = r && r.shared ? i.hoverPoints : o;
					t = t && r && s, t && f(s)[0].plotX === H && (t = !1), t ? (r.refresh(s), o && o.setState(o.state, !0)) : (o && o.onMouseOut(), a && a.onMouseOut(), r && r.hide(e), n._onDocumentMouseMove && (ve(mt, "mousemove", n._onDocumentMouseMove), n._onDocumentMouseMove = null), ge(i.axes, function(t) {
						t.hideCrosshair()
					}), n.hoverX = null)
				},
				scaleGroups: function(t, e) {
					var n, i = this.chart;
					ge(i.series, function(a) {
						n = t || a.getPlotBox(), a.xAxis && a.xAxis.zoomEnabled && (a.group.attr(n), a.markerGroup && (a.markerGroup.attr(n), a.markerGroup.clip(e ? i.clipRect : null)), a.dataLabelsGroup && a.dataLabelsGroup.attr(n))
					}), i.clipRect.attr(e || i.clipBox)
				},
				dragStart: function(t) {
					var e = this.chart;
					e.mouseIsDown = t.type, e.cancelClick = !1, e.mouseDownX = this.mouseDownX = t.chartX, e.mouseDownY = this.mouseDownY = t.chartY
				},
				drag: function(t) {
					var e, n, i = this.chart,
						a = i.options.chart,
						o = t.chartX,
						r = t.chartY,
						s = this.zoomHor,
						l = this.zoomVert,
						d = i.plotLeft,
						c = i.plotTop,
						p = i.plotWidth,
						h = i.plotHeight,
						u = this.mouseDownX,
						g = this.mouseDownY,
						m = a.panKey && t[a.panKey + "Key"];
					d > o ? o = d : o > d + p && (o = d + p), c > r ? r = c : r > c + h && (r = c + h), this.hasDragged = Math.sqrt(Math.pow(u - o, 2) + Math.pow(g - r, 2)), this.hasDragged > 10 && (e = i.isInsidePlot(u - d, g - c), i.hasCartesianSeries && (this.zoomX || this.zoomY) && e && !m && (this.selectionMarker || (this.selectionMarker = i.renderer.rect(d, c, s ? 1 : p, l ? 1 : h, 0).attr({
						fill: a.selectionMarkerFill || "rgba(69,114,167,0.25)",
						zIndex: 7
					}).add())), this.selectionMarker && s && (n = o - u, this.selectionMarker.attr({
						width: kt(n),
						x: (n > 0 ? 0 : n) + u
					})), this.selectionMarker && l && (n = r - g, this.selectionMarker.attr({
						height: kt(n),
						y: (n > 0 ? 0 : n) + g
					})), e && !this.selectionMarker && a.panning && i.pan(t, a.panning))
				},
				drop: function(t) {
					var e = this.chart,
						n = this.hasPinched;
					if (this.selectionMarker) {
						var i, o = {
								xAxis: [],
								yAxis: [],
								originalEvent: t.originalEvent || t
							},
							r = this.selectionMarker,
							s = r.attr ? r.attr("x") : r.x,
							l = r.attr ? r.attr("y") : r.y,
							d = r.attr ? r.attr("width") : r.width,
							c = r.attr ? r.attr("height") : r.height;
						(this.hasDragged || n) && (ge(e.axes, function(e) {
							if (e.zoomEnabled) {
								var n = e.horiz,
									a = "touchend" === t.type ? e.minPixelPadding : 0,
									r = e.toValue((n ? s : l) + a),
									p = e.toValue((n ? s + d : l + c) - a);
								isNaN(r) || isNaN(p) || (o[e.coll].push({
									axis: e,
									min: yt(r, p),
									max: xt(r, p)
								}), i = !0)
							}
						}), i && be(e, "selection", o, function(t) {
							e.zoom(a(t, n ? {
								animation: !1
							} : null))
						})), this.selectionMarker = this.selectionMarker.destroy(), n && this.scaleGroups()
					}
					e && (_(e.container, {
						cursor: e._cursor
					}), e.cancelClick = this.hasDragged > 10, e.mouseIsDown = this.hasDragged = this.hasPinched = !1, this.pinchDown = [])
				},
				onContainerMouseDown: function(t) {
					t = this.normalize(t), t.preventDefault && t.preventDefault(), this.dragStart(t)
				},
				onDocumentMouseUp: function(t) {
					Ft[qe] && Ft[qe].pointer.drop(t)
				},
				onDocumentMouseMove: function(t) {
					var e = this.chart,
						n = this.chartPosition,
						i = e.hoverSeries;
					t = this.normalize(t, n), n && i && !this.inClass(t.target, "highcharts-tracker") && !e.isInsidePlot(t.chartX - e.plotLeft, t.chartY - e.plotTop) && this.reset()
				},
				onContainerMouseLeave: function() {
					var t = Ft[qe];
					t && (t.pointer.reset(), t.pointer.chartPosition = null)
				},
				onContainerMouseMove: function(t) {
					var e = this.chart;
					qe = e.index, t = this.normalize(t), t.returnValue = !1, "mousedown" === e.mouseIsDown && this.drag(t), !this.inClass(t.target, "highcharts-tracker") && !e.isInsidePlot(t.chartX - e.plotLeft, t.chartY - e.plotTop) || e.openMenu || this.runPointActions(t)
				},
				inClass: function(t, e) {
					for (var n; t;) {
						if (n = m(t, "class")) {
							if (-1 !== n.indexOf(e)) return !0;
							if (-1 !== n.indexOf(Jt + "container")) return !1
						}
						t = t.parentNode
					}
				},
				onTrackerMouseOut: function(t) {
					var e = this.chart.hoverSeries,
						n = t.relatedTarget || t.toElement,
						i = n && n.point && n.point.series;
					!e || e.options.stickyTracking || this.inClass(n, Jt + "tooltip") || i === e || e.onMouseOut()
				},
				onContainerClick: function(t) {
					var e = this.chart,
						n = e.hoverPoint,
						i = e.plotLeft,
						o = e.plotTop;
					t = this.normalize(t), t.cancelBubble = !0, e.cancelClick || (n && this.inClass(t.target, Jt + "tracker") ? (be(n.series, "click", a(t, {
						point: n
					})), e.hoverPoint && n.firePointEvent("click", t)) : (a(t, this.getCoordinates(t)), e.isInsidePlot(t.chartX - i, t.chartY - o) && be(e, "click", t)))
				},
				setDOMEvents: function() {
					var t = this,
						e = t.chart.container;
					e.onmousedown = function(e) {
						t.onContainerMouseDown(e)
					}, e.onmousemove = function(e) {
						t.onContainerMouseMove(e)
					}, e.onclick = function(e) {
						t.onContainerClick(e)
					}, _e(e, "mouseleave", t.onContainerMouseLeave), 1 === Ht && _e(mt, "mouseup", t.onDocumentMouseUp), X && (e.ontouchstart = function(e) {
						t.onContainerTouchStart(e)
					}, e.ontouchmove = function(e) {
						t.onContainerTouchMove(e)
					}, 1 === Ht && _e(mt, "touchend", t.onDocumentTouchEnd))
				},
				destroy: function() {
					var t;
					ve(this.chart.container, "mouseleave", this.onContainerMouseLeave), Ht || (ve(mt, "mouseup", this.onDocumentMouseUp), ve(mt, "touchend", this.onDocumentTouchEnd)), clearInterval(this.tooltipTimeout);
					for (t in this) this[t] = null
				}
			}, a(le.Pointer.prototype, {
				pinchTranslate: function(t, e, n, i, a, o) {
					(this.zoomHor || this.pinchHor) && this.pinchTranslateDirection(!0, t, e, n, i, a, o), (this.zoomVert || this.pinchVert) && this.pinchTranslateDirection(!1, t, e, n, i, a, o)
				},
				pinchTranslateDirection: function(t, e, n, i, a, o, r, s) {
					var l, d, c, p, h, u, g = this.chart,
						m = t ? "x" : "y",
						f = t ? "X" : "Y",
						w = "chart" + f,
						_ = t ? "width" : "height",
						v = g["plot" + (t ? "Left" : "Top")],
						b = s || 1,
						x = g.inverted,
						y = g.bounds[t ? "h" : "v"],
						k = 1 === e.length,
						z = e[0][w],
						C = n[0][w],
						T = !k && e[1][w],
						S = !k && n[1][w],
						j = function() {
							!k && kt(z - T) > 20 && (b = s || kt(C - S) / kt(z - T)), c = (v - C) / b + z, l = g["plot" + (t ? "Width" : "Height")] / b
						};
					j(), d = c, d < y.min ? (d = y.min, p = !0) : d + l > y.max && (d = y.max - l, p = !0), p ? (C -= .8 * (C - r[m][0]), k || (S -= .8 * (S - r[m][1])), j()) : r[m] = [C, S], x || (o[m] = c - v, o[_] = l), u = x ? t ? "scaleY" : "scaleX" : "scale" + f, h = x ? 1 / b : b, a[_] = l, a[m] = d, i[u] = b, i["translate" + f] = h * v + (C - h * z)
				},
				pinch: function(t) {
					var e = this,
						n = e.chart,
						i = e.pinchDown,
						o = e.followTouchMove,
						r = t.touches,
						s = r.length,
						l = e.lastValidTouch,
						d = e.hasZoom,
						c = e.selectionMarker,
						p = {},
						h = 1 === s && (e.inClass(t.target, Jt + "tracker") && n.runTrackerClick || e.runChartClick),
						u = {};
					!d && !o || h || t.preventDefault(), we(r, function(t) {
						return e.normalize(t)
					}), "touchstart" === t.type ? (ge(r, function(t, e) {
						i[e] = {
							chartX: t.chartX,
							chartY: t.chartY
						}
					}), l.x = [i[0].chartX, i[1] && i[1].chartX], l.y = [i[0].chartY, i[1] && i[1].chartY], ge(n.axes, function(t) {
						if (t.zoomEnabled) {
							var e = n.bounds[t.horiz ? "h" : "v"],
								i = t.minPixelPadding,
								a = t.toPixels(w(t.options.min, t.dataMin)),
								o = t.toPixels(w(t.options.max, t.dataMax)),
								r = yt(a, o),
								s = xt(a, o);
							e.min = yt(t.pos, r - i), e.max = xt(t.pos + t.len, s + i)
						}
					}), e.res = !0) : i.length && (c || (e.selectionMarker = c = a({
						destroy: Wt
					}, n.plotBox)), e.pinchTranslate(i, r, p, c, u, l), e.hasPinched = d, e.scaleGroups(p, u), !d && o && 1 === s ? this.runPointActions(e.normalize(t)) : e.res && (e.res = !1, this.reset(!1, 0)))
				},
				onContainerTouchStart: function(t) {
					var e = this.chart;
					qe = e.index, 1 === t.touches.length ? (t = this.normalize(t), e.isInsidePlot(t.chartX - e.plotLeft, t.chartY - e.plotTop) ? (this.runPointActions(t), this.pinch(t)) : this.reset()) : 2 === t.touches.length && this.pinch(t)
				},
				onContainerTouchMove: function(t) {
					(1 === t.touches.length || 2 === t.touches.length) && this.pinch(t)
				},
				onDocumentTouchEnd: function(t) {
					Ft[qe] && Ft[qe].pointer.drop(t)
				}
			}), ft.PointerEvent || ft.MSPointerEvent) {
				var Re = {},
					We = !!ft.PointerEvent,
					Fe = function() {
						var t, e = [];
						e.item = function(t) {
							return this[t]
						};
						for (t in Re) Re.hasOwnProperty(t) && e.push({
							pageX: Re[t].pageX,
							pageY: Re[t].pageY,
							target: Re[t].target
						});
						return e
					},
					He = function(t, e, n, i) {
						var a;
						t = t.originalEvent || t, "touch" !== t.pointerType && t.pointerType !== t.MSPOINTER_TYPE_TOUCH || !Ft[qe] || (i(t), a = Ft[qe].pointer, a[e]({
							type: n,
							target: t.currentTarget,
							preventDefault: Wt,
							touches: Fe()
						}))
					};
				a(Be.prototype, {
					onContainerPointerDown: function(t) {
						He(t, "onContainerTouchStart", "touchstart", function(t) {
							Re[t.pointerId] = {
								pageX: t.pageX,
								pageY: t.pageY,
								target: t.currentTarget
							}
						})
					},
					onContainerPointerMove: function(t) {
						He(t, "onContainerTouchMove", "touchmove", function(t) {
							Re[t.pointerId] = {
								pageX: t.pageX,
								pageY: t.pageY
							}, Re[t.pointerId].target || (Re[t.pointerId].target = t.currentTarget)
						})
					},
					onDocumentPointerUp: function(t) {
						He(t, "onContainerTouchEnd", "touchend", function(t) {
							delete Re[t.pointerId]
						})
					},
					batchMSEvents: function(t) {
						t(this.chart.container, We ? "pointerdown" : "MSPointerDown", this.onContainerPointerDown), t(this.chart.container, We ? "pointermove" : "MSPointerMove", this.onContainerPointerMove), t(mt, We ? "pointerup" : "MSPointerUp", this.onDocumentPointerUp)
					}
				}), k(Be.prototype, "init", function(t, e, n) {
					t.call(this, e, n), (this.hasZoom || this.followTouchMove) && _(e.container, {
						"-ms-touch-action": Qt,
						"touch-action": Qt
					})
				}), k(Be.prototype, "setDOMEvents", function(t) {
					t.apply(this), (this.hasZoom || this.followTouchMove) && this.batchMSEvents(_e)
				}), k(Be.prototype, "destroy", function(t) {
					this.batchMSEvents(ve), t.call(this)
				})
			}
			var $e = le.Legend = function(t, e) {
				this.init(t, e)
			};
			$e.prototype = {
				init: function(t, e) {
					var n = this,
						i = e.itemStyle,
						a = w(e.padding, 8),
						r = e.itemMarginTop || 0;
					this.options = e, e.enabled && (n.itemStyle = i, n.itemHiddenStyle = o(i, e.itemHiddenStyle), n.itemMarginTop = r, n.padding = a, n.initialItemX = a, n.initialItemY = a - 5, n.maxItemWidth = 0, n.chart = t, n.itemHeight = 0, n.lastLineHeight = 0, n.symbolWidth = w(e.symbolWidth, 16), n.pages = [], n.render(), _e(n.chart, "endResize", function() {
						n.positionCheckboxes()
					}))
				},
				colorizeItem: function(t, e) {
					var n, i, a = this,
						o = a.options,
						r = t.legendItem,
						s = t.legendLine,
						l = t.legendSymbol,
						d = a.itemHiddenStyle.color,
						c = e ? o.itemStyle.color : d,
						p = e ? t.legendColor || t.color || "#CCC" : d,
						h = t.options && t.options.marker,
						u = {
							fill: p
						};
					if (r && r.css({
						fill: c,
						color: c
					}), s && s.attr({
						stroke: p
					}), l) {
						if (h && l.isMarker) {
							u.stroke = p, h = t.convertAttribs(h);
							for (n in h) i = h[n], i !== H && (u[n] = i)
						}
						l.attr(u)
					}
				},
				positionItem: function(t) {
					var e = this,
						n = e.options,
						i = n.symbolPadding,
						a = !n.rtl,
						o = t._legendItemPos,
						r = o[0],
						s = o[1],
						l = t.checkbox;
					t.legendGroup && t.legendGroup.translate(a ? r : e.legendWidth - r - 2 * i - 4, s), l && (l.x = r, l.y = s)
				},
				destroyItem: function(t) {
					var e = t.checkbox;
					ge(["legendItem", "legendLine", "legendSymbol", "legendGroup"], function(e) {
						t[e] && (t[e] = t[e].destroy())
					}), e && E(t.checkbox)
				},
				destroy: function() {
					var t = this,
						e = t.group,
						n = t.box;
					n && (t.box = n.destroy()), e && (t.group = e.destroy())
				},
				positionCheckboxes: function(t) {
					var e, n = this.group.alignAttr,
						i = this.clipHeight || this.legendHeight;
					n && (e = n.translateY, ge(this.allItems, function(a) {
						var o, r = a.checkbox;
						r && (o = e + r.y + (t || 0) + 3, _(r, {
							left: n.translateX + a.checkboxOffset + r.x - 20 + Kt,
							top: o + Kt,
							display: o > e - 6 && e + i - 6 > o ? "" : Qt
						}))
					}))
				},
				renderTitle: function() {
					var t, e = this.options,
						n = this.padding,
						i = e.title,
						a = 0;
					i.text && (this.title || (this.title = this.chart.renderer.label(i.text, n - 3, n - 4, null, null, null, null, null, "legend-title").attr({
						zIndex: 1
					}).css(i.style).add(this.group)), t = this.title.getBBox(), a = t.height, this.offsetWidth = t.width, this.contentGroup.attr({
						translateY: a
					})), this.titleHeight = a
				},
				renderItem: function(t) {
					var e, n, i, a = this,
						r = a.chart,
						s = r.renderer,
						l = a.options,
						d = "horizontal" === l.layout,
						c = a.symbolWidth,
						p = l.symbolPadding,
						h = a.itemStyle,
						u = a.itemHiddenStyle,
						g = a.padding,
						m = d ? w(l.itemDistance, 20) : 0,
						f = !l.rtl,
						_ = l.width,
						v = l.itemMarginBottom || 0,
						b = a.itemMarginTop,
						x = a.initialItemX,
						y = t.legendItem,
						k = t.series && t.series.drawLegendSymbol ? t.series : t,
						z = k.options,
						T = a.createCheckboxForItem && z && z.showCheckbox,
						S = l.useHTML;
					y || (t.legendGroup = s.g("legend-item").attr({
						zIndex: 1
					}).add(a.scrollGroup), t.legendItem = y = s.text(l.labelFormat ? C(l.labelFormat, t) : l.labelFormatter.call(t), f ? c + p : -p, a.baseline || 0, S).css(o(t.visible ? h : u)).attr({
						align: f ? "left" : "right",
						zIndex: 2
					}).add(t.legendGroup), a.baseline || (a.baseline = s.fontMetrics(h.fontSize, y).f + 3 + b, y.attr("y", a.baseline)), k.drawLegendSymbol(a, t), a.setItemEvents && a.setItemEvents(t, y, S, h, u), a.colorizeItem(t, t.visible), T && a.createCheckboxForItem(t)), n = y.getBBox(), i = t.checkboxOffset = l.itemWidth || t.legendItemWidth || c + p + n.width + m + (T ? 20 : 0), a.itemHeight = e = _t(t.legendItemHeight || n.height), d && a.itemX - x + i > (_ || r.chartWidth - 2 * g - x - l.x) && (a.itemX = x, a.itemY += b + a.lastLineHeight + v, a.lastLineHeight = 0), a.maxItemWidth = xt(a.maxItemWidth, i), a.lastItemY = b + a.itemY + v, a.lastLineHeight = xt(e, a.lastLineHeight), t._legendItemPos = [a.itemX, a.itemY], d ? a.itemX += i : (a.itemY += b + e + v, a.lastLineHeight = e), a.offsetWidth = _ || xt((d ? a.itemX - x - m : i) + g, a.offsetWidth)
				},
				getAllItems: function() {
					var t = [];
					return ge(this.chart.series, function(e) {
						var n = e.options;
						w(n.showInLegend, g(n.linkedTo) ? !1 : H, !0) && (t = t.concat(e.legendItems || ("point" === n.legendType ? e.data : e)))
					}), t
				},
				render: function() {
					var t, e, n, i, o = this,
						r = o.chart,
						s = r.renderer,
						l = o.group,
						d = o.box,
						c = o.options,
						p = o.padding,
						h = c.borderWidth,
						u = c.backgroundColor;
					o.itemX = o.initialItemX, o.itemY = o.initialItemY, o.offsetWidth = 0, o.lastItemY = 0, l || (o.group = l = s.g("legend").attr({
						zIndex: 7
					}).add(), o.contentGroup = s.g().attr({
						zIndex: 1
					}).add(l), o.scrollGroup = s.g().add(o.contentGroup)), o.renderTitle(), t = o.getAllItems(), j(t, function(t, e) {
						return (t.options && t.options.legendIndex || 0) - (e.options && e.options.legendIndex || 0)
					}), c.reversed && t.reverse(), o.allItems = t, o.display = e = !!t.length, ge(t, function(t) {
						o.renderItem(t)
					}), n = c.width || o.offsetWidth, i = o.lastItemY + o.lastLineHeight + o.titleHeight, i = o.handleOverflow(i), (h || u) && (n += p, i += p, d ? n > 0 && i > 0 && (d[d.isNew ? "attr" : "animate"](d.crisp({
						width: n,
						height: i
					})), d.isNew = !1) : (o.box = d = s.rect(0, 0, n, i, c.borderRadius, h || 0).attr({
						stroke: c.borderColor,
						"stroke-width": h || 0,
						fill: u || Qt
					}).add(l).shadow(c.shadow), d.isNew = !0), d[e ? "show" : "hide"]()), o.legendWidth = n, o.legendHeight = i, ge(t, function(t) {
						o.positionItem(t)
					}), e && l.align(a({
						width: n,
						height: i
					}, c), !0, "spacingBox"), r.isResizing || this.positionCheckboxes()
				},
				handleOverflow: function(t) {
					var e, n, i = this,
						a = this.chart,
						o = a.renderer,
						r = this.options,
						s = r.y,
						l = "top" === r.verticalAlign,
						d = a.spacingBox.height + (l ? -s : s) - this.padding,
						c = r.maxHeight,
						p = this.clipRect,
						h = r.navigation,
						u = w(h.animation, !0),
						g = h.arrowSize || 12,
						m = this.nav,
						f = this.pages,
						_ = this.allItems;
					return "horizontal" === r.layout && (d /= 2), c && (d = yt(d, c)), f.length = 0, t > d && !r.useHTML ? (this.clipHeight = e = xt(d - 20 - this.titleHeight - this.padding, 0), this.currentPage = w(this.currentPage, 1), this.fullHeight = t, ge(_, function(t, i) {
						var a = t._legendItemPos[1],
							o = _t(t.legendItem.getBBox().height),
							r = f.length;
						(!r || a - f[r - 1] > e && (n || a) !== f[r - 1]) && (f.push(n || a), r++), i === _.length - 1 && a + o - f[r - 1] > e && f.push(a), a !== n && (n = a)
					}), p || (p = i.clipRect = o.clipRect(0, this.padding, 9999, 0), i.contentGroup.clip(p)), p.attr({
						height: e
					}), m || (this.nav = m = o.g().attr({
						zIndex: 1
					}).add(this.group), this.up = o.symbol("triangle", 0, 0, g, g).on("click", function() {
						i.scroll(-1, u)
					}).add(m), this.pager = o.text("", 15, 10).css(h.style).add(m), this.down = o.symbol("triangle-down", 0, 0, g, g).on("click", function() {
						i.scroll(1, u)
					}).add(m)), i.scroll(0), t = d) : m && (p.attr({
						height: a.chartHeight
					}), m.hide(), this.scrollGroup.attr({
						translateY: 1
					}), this.clipHeight = 0), t
				},
				scroll: function(t, e) {
					var n, i = this.pages,
						a = i.length,
						o = this.currentPage + t,
						r = this.clipHeight,
						s = this.options.navigation,
						l = s.activeColor,
						d = s.inactiveColor,
						c = this.pager,
						p = this.padding;
					o > a && (o = a), o > 0 && (e !== H && O(e, this.chart), this.nav.attr({
						translateX: p,
						translateY: r + this.padding + 7 + this.titleHeight,
						visibility: Zt
					}), this.up.attr({
						fill: 1 === o ? d : l
					}).css({
						cursor: 1 === o ? "default" : "pointer"
					}), c.attr({
						text: o + "/" + a
					}), this.down.attr({
						x: 18 + this.pager.getBBox().width,
						fill: o === a ? d : l
					}).css({
						cursor: o === a ? "default" : "pointer"
					}), n = -i[o - 1] + this.initialItemY, this.scrollGroup.animate({
						translateY: n
					}), this.currentPage = o, this.positionCheckboxes(n))
				}
			};
			var Xe = le.LegendSymbolMixin = {
				drawRectangle: function(t, e) {
					var n = t.options.symbolHeight || 12;
					e.legendSymbol = this.chart.renderer.rect(0, t.baseline - 5 - n / 2, t.symbolWidth, n, t.options.symbolRadius || 0).attr({
						zIndex: 3
					}).add(e.legendGroup)
				},
				drawLineMarker: function(t) {
					var e, n, i, a = this.options,
						o = a.marker,
						r = t.options,
						s = t.symbolWidth,
						l = this.chart.renderer,
						d = this.legendGroup,
						c = t.baseline - _t(.3 * l.fontMetrics(r.itemStyle.fontSize, this.legendItem).b);
					a.lineWidth && (i = {
						"stroke-width": a.lineWidth
					}, a.dashStyle && (i.dashstyle = a.dashStyle), this.legendLine = l.path([te, 0, c, ee, s, c]).attr(i).add(d)), o && o.enabled !== !1 && (e = o.radius, this.legendSymbol = n = l.symbol(this.symbol, s / 2 - e, c - e, 2 * e, 2 * e).add(d), n.isMarker = !0)
				}
			};
			(/Trident\/7\.0/.test(jt) || Lt) && k($e.prototype, "positionItem", function(t, e) {
				var n = this,
					i = function() {
						e._legendItemPos && t.call(n, e)
					};
				i(), setTimeout(i)
			}), W.prototype = {
				init: function(t, e) {
					var n, i = t.series;
					t.series = null, n = o(G, t), n.series = t.series = i, this.userOptions = t;
					var a = n.chart;
					this.margin = this.splashArray("margin", a), this.spacing = this.splashArray("spacing", a);
					var r = a.events;
					this.bounds = {
						h: {},
						v: {}
					}, this.callback = e, this.isResizing = 0, this.options = n, this.axes = [], this.series = [], this.hasCartesianSeries = a.showAxes;
					var s, l = this;
					if (l.index = Ft.length, Ft.push(l), Ht++, a.reflow !== !1 && _e(l, "load", function() {
						l.initReflow()
					}), r)
						for (s in r) _e(l, s, r[s]);
					l.xAxis = [], l.yAxis = [], l.animation = qt ? !1 : w(a.animation, !0), l.pointCount = l.colorCounter = l.symbolCounter = 0, l.firstRender()
				},
				initSeries: function(t) {
					var e, n = this,
						i = n.options.chart,
						a = t.type || i.type || i.defaultSeriesType,
						o = se[a];
					return o || K(17, !0), e = new o, e.init(this, t), e
				},
				isInsidePlot: function(t, e, n) {
					var i = n ? e : t,
						a = n ? t : e;
					return i >= 0 && i <= this.plotWidth && a >= 0 && a <= this.plotHeight
				},
				adjustTickAmounts: function() {
					this.options.chart.alignTicks !== !1 && ge(this.axes, function(t) {
						t.adjustTickAmount()
					}), this.maxTicks = null
				},
				redraw: function(t) {
					var e, n, i, o = this,
						r = o.axes,
						s = o.series,
						l = o.pointer,
						d = o.legend,
						c = o.isDirtyLegend,
						p = o.hasCartesianSeries,
						h = o.isDirtyBox,
						u = s.length,
						g = u,
						m = o.renderer,
						f = m.isHidden(),
						w = [];
					for (O(t, o), f && o.cloneRenderTo(), o.layOutTitles(); g--;)
						if (i = s[g], i.options.stacking && (e = !0, i.isDirty)) {
							n = !0;
							break
						}
					if (n)
						for (g = u; g--;) i = s[g], i.options.stacking && (i.isDirty = !0);
					ge(s, function(t) {
						t.isDirty && "point" === t.options.legendType && (c = !0)
					}), c && d.options.enabled && (d.render(), o.isDirtyLegend = !1), e && o.getStacks(), p && (o.isResizing || (o.maxTicks = null, ge(r, function(t) {
						t.setScale()
					})), o.adjustTickAmounts()), o.getMargins(), p && (ge(r, function(t) {
						t.isDirty && (h = !0)
					}), ge(r, function(t) {
						t.isDirtyExtremes && (t.isDirtyExtremes = !1, w.push(function() {
							be(t, "afterSetExtremes", a(t.eventArgs, t.getExtremes())), delete t.eventArgs
						})), (h || e) && t.redraw()
					})), h && o.drawChartBox(), ge(s, function(t) {
						t.isDirty && t.visible && (!t.isCartesian || t.xAxis) && t.redraw()
					}), l && l.reset(!0), m.draw(), be(o, "redraw"), f && o.cloneRenderTo(!0), ge(w, function(t) {
						t.call()
					})
				},
				get: function(t) {
					var e, n, i, a = this,
						o = a.axes,
						r = a.series;
					for (e = 0; e < o.length; e++)
						if (o[e].options.id === t) return o[e];
					for (e = 0; e < r.length; e++)
						if (r[e].options.id === t) return r[e];
					for (e = 0; e < r.length; e++)
						for (i = r[e].points || [], n = 0; n < i.length; n++)
							if (i[n].id === t) return i[n];
					return null
				},
				getAxes: function() {
					var t, e, n = this,
						i = this.options,
						a = i.xAxis = f(i.xAxis || {}),
						o = i.yAxis = f(i.yAxis || {});
					ge(a, function(t, e) {
						t.index = e, t.isX = !0
					}), ge(o, function(t, e) {
						t.index = e
					}), t = a.concat(o), ge(t, function(t) {
						e = new R(n, t)
					}), n.adjustTickAmounts()
				},
				getSelectedPoints: function() {
					var t = [];
					return ge(this.series, function(e) {
						t = t.concat(me(e.points || [], function(t) {
							return t.selected
						}))
					}), t
				},
				getSelectedSeries: function() {
					return me(this.series, function(t) {
						return t.selected
					})
				},
				getStacks: function() {
					var t = this;
					ge(t.yAxis, function(t) {
						t.stacks && t.hasVisibleSeries && (t.oldStacks = t.stacks)
					}), ge(t.series, function(e) {
						!e.options.stacking || e.visible !== !0 && t.options.chart.ignoreHiddenSeries !== !1 || (e.stackKey = e.type + w(e.options.stack, ""))
					})
				},
				setTitle: function(t, e, n) {
					var i, a, r = this,
						s = r.options;
					i = s.title = o(s.title, t), a = s.subtitle = o(s.subtitle, e), ge([
						["title", t, i],
						["subtitle", e, a]
					], function(t) {
						var e = t[0],
							n = r[e],
							i = t[1],
							a = t[2];
						n && i && (r[e] = n = n.destroy()), a && a.text && !n && (r[e] = r.renderer.text(a.text, 0, 0, a.useHTML).attr({
							align: a.align,
							"class": Jt + e,
							zIndex: a.zIndex || 4
						}).css(a.style).add())
					}), r.layOutTitles(n)
				},
				layOutTitles: function(t) {
					var e, n = 0,
						i = this.title,
						o = this.subtitle,
						r = this.options,
						s = r.title,
						l = r.subtitle,
						d = this.renderer,
						c = this.spacingBox.width - 44;
					i && (i.css({
						width: (s.width || c) + Kt
					}).align(a({
						y: d.fontMetrics(s.style.fontSize, i).b - 3
					}, s), !1, "spacingBox"), s.floating || s.verticalAlign || (n = i.getBBox().height)), o && (o.css({
						width: (l.width || c) + Kt
					}).align(a({
						y: n + (s.margin - 13) + d.fontMetrics(s.style.fontSize, o).b
					}, l), !1, "spacingBox"), l.floating || l.verticalAlign || (n = bt(n + o.getBBox().height))), e = this.titleOffset !== n, this.titleOffset = n, !this.isDirtyBox && e && (this.isDirtyBox = e, this.hasRendered && w(t, !0) && this.isDirtyBox && this.redraw())
				},
				getChartSize: function() {
					var t = this,
						e = t.options.chart,
						n = e.width,
						i = e.height,
						a = t.renderToClone || t.renderTo;
					g(n) || (t.containerWidth = pe(a, "width")), g(i) || (t.containerHeight = pe(a, "height")), t.chartWidth = xt(0, n || t.containerWidth || 600), t.chartHeight = xt(0, w(i, t.containerHeight > 19 ? t.containerHeight : 400))
				},
				cloneRenderTo: function(t) {
					var e = this.renderToClone,
						n = this.container;
					t ? e && (this.renderTo.appendChild(n), E(e), delete this.renderToClone) : (n && n.parentNode === this.renderTo && this.renderTo.removeChild(n), this.renderToClone = e = this.renderTo.cloneNode(0), _(e, {
						position: Gt,
						top: "-9999px",
						display: "block"
					}), e.style.setProperty && e.style.setProperty("display", "block", "important"), mt.body.appendChild(e), n && e.appendChild(n))
				},
				getContainer: function() {
					var t, e, n, i, o, l, d = this,
						c = d.options.chart,
						p = "data-highcharts-chart";
					d.renderTo = i = c.renderTo, l = Jt + Rt++, s(i) && (d.renderTo = i = mt.getElementById(i)), i || K(13, !0), o = r(m(i, p)), !isNaN(o) && Ft[o] && Ft[o].hasRendered && Ft[o].destroy(), m(i, p, d.index), i.innerHTML = "", c.skipClone || i.offsetWidth || d.cloneRenderTo(), d.getChartSize(), e = d.chartWidth, n = d.chartHeight, d.container = t = v(Ut, {
						className: Jt + "container" + (c.className ? " " + c.className : ""),
						id: l
					}, a({
						position: Yt,
						overflow: Vt,
						width: e + Kt,
						height: n + Kt,
						textAlign: "left",
						lineHeight: "normal",
						zIndex: 0,
						"-webkit-tap-highlight-color": "rgba(0,0,0,0)"
					}, c.style), d.renderToClone || i), d._cursor = t.style.cursor, d.renderer = c.forExport ? new Ae(t, e, n, c.style, !0) : new $(t, e, n, c.style), qt && d.renderer.create(d, t, e, n)
				},
				getMargins: function() {
					var t, e = this,
						n = e.spacing,
						i = e.legend,
						a = e.margin,
						o = e.options.legend,
						r = w(o.margin, 20),
						s = o.x,
						l = o.y,
						d = o.align,
						c = o.verticalAlign,
						p = e.titleOffset;
					e.resetMargins(), t = e.axisOffset, p && !g(a[0]) && (e.plotTop = xt(e.plotTop, p + e.options.title.margin + n[0])), i.display && !o.floating && ("right" === d ? g(a[1]) || (e.marginRight = xt(e.marginRight, i.legendWidth - s + r + n[1])) : "left" === d ? g(a[3]) || (e.plotLeft = xt(e.plotLeft, i.legendWidth + s + r + n[3])) : "top" === c ? g(a[0]) || (e.plotTop = xt(e.plotTop, i.legendHeight + l + r + n[0])) : "bottom" === c && (g(a[2]) || (e.marginBottom = xt(e.marginBottom, i.legendHeight - l + r + n[2])))), e.extraBottomMargin && (e.marginBottom += e.extraBottomMargin), e.extraTopMargin && (e.plotTop += e.extraTopMargin), e.hasCartesianSeries && ge(e.axes, function(t) {
						t.getOffset()
					}), g(a[3]) || (e.plotLeft += t[3]), g(a[0]) || (e.plotTop += t[0]), g(a[2]) || (e.marginBottom += t[2]), g(a[1]) || (e.marginRight += t[1]), e.setChartSize()
				},
				reflow: function(t) {
					var e = this,
						n = e.options.chart,
						i = e.renderTo,
						a = n.width || pe(i, "width"),
						o = n.height || pe(i, "height"),
						r = t ? t.target : ft,
						s = function() {
							e.container && (e.setSize(a, o, !1), e.hasUserSize = null)
						};
					e.hasUserSize || !a || !o || r !== ft && r !== mt || ((a !== e.containerWidth || o !== e.containerHeight) && (clearTimeout(e.reflowTimeout), t ? e.reflowTimeout = setTimeout(s, 100) : s()), e.containerWidth = a, e.containerHeight = o)
				},
				initReflow: function() {
					var t = this,
						e = function(e) {
							t.reflow(e)
						};
					_e(ft, "resize", e), _e(t, "destroy", function() {
						ve(ft, "resize", e)
					})
				},
				setSize: function(t, e, n) {
					var i, a, o, r = this;
					r.isResizing += 1, o = function() {
						r && be(r, "endResize", null, function() {
							r.isResizing -= 1
						})
					}, O(n, r), r.oldChartHeight = r.chartHeight, r.oldChartWidth = r.chartWidth, g(t) && (r.chartWidth = i = xt(0, _t(t)), r.hasUserSize = !!i), g(e) && (r.chartHeight = a = xt(0, _t(e))), (V ? ye : _)(r.container, {
						width: i + Kt,
						height: a + Kt
					}, V), r.setChartSize(!0), r.renderer.setSize(i, a, n), r.maxTicks = null, ge(r.axes, function(t) {
						t.isDirty = !0, t.setScale()
					}), ge(r.series, function(t) {
						t.isDirty = !0
					}), r.isDirtyLegend = !0, r.isDirtyBox = !0, r.layOutTitles(), r.getMargins(), r.redraw(n), r.oldChartHeight = null, be(r, "resize"), V === !1 ? o() : setTimeout(o, V && V.duration || 500)
				},
				setChartSize: function(t) {
					var e, n, i, a, o, r, s, l = this,
						d = l.inverted,
						c = l.renderer,
						p = l.chartWidth,
						h = l.chartHeight,
						u = l.options.chart,
						g = l.spacing,
						m = l.clipOffset;
					l.plotLeft = i = _t(l.plotLeft), l.plotTop = a = _t(l.plotTop), l.plotWidth = o = xt(0, _t(p - i - l.marginRight)), l.plotHeight = r = xt(0, _t(h - a - l.marginBottom)), l.plotSizeX = d ? r : o, l.plotSizeY = d ? o : r, l.plotBorderWidth = u.plotBorderWidth || 0, l.spacingBox = c.spacingBox = {
						x: g[3],
						y: g[0],
						width: p - g[3] - g[1],
						height: h - g[0] - g[2]
					}, l.plotBox = c.plotBox = {
						x: i,
						y: a,
						width: o,
						height: r
					}, s = 2 * vt(l.plotBorderWidth / 2), e = bt(xt(s, m[3]) / 2), n = bt(xt(s, m[0]) / 2), l.clipBox = {
						x: e,
						y: n,
						width: vt(l.plotSizeX - xt(s, m[1]) / 2 - e),
						height: xt(0, vt(l.plotSizeY - xt(s, m[2]) / 2 - n))
					}, t || ge(l.axes, function(t) {
						t.setAxisSize(), t.setAxisTranslation()
					})
				},
				resetMargins: function() {
					var t = this,
						e = t.spacing,
						n = t.margin;
					t.plotTop = w(n[0], e[0]), t.marginRight = w(n[1], e[1]), t.marginBottom = w(n[2], e[2]), t.plotLeft = w(n[3], e[3]), t.axisOffset = [0, 0, 0, 0], t.clipOffset = [0, 0, 0, 0]
				},
				drawChartBox: function() {
					var t, e, n = this,
						i = n.options.chart,
						a = n.renderer,
						o = n.chartWidth,
						r = n.chartHeight,
						s = n.chartBackground,
						l = n.plotBackground,
						d = n.plotBorder,
						c = n.plotBGImage,
						p = i.borderWidth || 0,
						h = i.backgroundColor,
						u = i.plotBackgroundColor,
						g = i.plotBackgroundImage,
						m = i.plotBorderWidth || 0,
						f = n.plotLeft,
						w = n.plotTop,
						_ = n.plotWidth,
						v = n.plotHeight,
						b = n.plotBox,
						x = n.clipRect,
						y = n.clipBox;
					t = p + (i.shadow ? 8 : 0), (p || h) && (s ? s.animate(s.crisp({
						width: o - t,
						height: r - t
					})) : (e = {
						fill: h || Qt
					}, p && (e.stroke = i.borderColor, e["stroke-width"] = p), n.chartBackground = a.rect(t / 2, t / 2, o - t, r - t, i.borderRadius, p).attr(e).addClass(Jt + "background").add().shadow(i.shadow))), u && (l ? l.animate(b) : n.plotBackground = a.rect(f, w, _, v, 0).attr({
						fill: u
					}).add().shadow(i.plotShadow)), g && (c ? c.animate(b) : n.plotBGImage = a.image(g, f, w, _, v).add()), x ? x.animate({
						width: y.width,
						height: y.height
					}) : n.clipRect = a.clipRect(y), m && (d ? d.animate(d.crisp({
						x: f,
						y: w,
						width: _,
						height: v,
						strokeWidth: -m
					})) : n.plotBorder = a.rect(f, w, _, v, 0, -m).attr({
						stroke: i.plotBorderColor,
						"stroke-width": m,
						fill: Qt,
						zIndex: 1
					}).add()), n.isDirtyBox = !1
				},
				propFromSeries: function() {
					var t, e, n, i = this,
						a = i.options.chart,
						o = i.options.series;
					ge(["inverted", "angular", "polar"], function(r) {
						for (t = se[a.type || a.defaultSeriesType], n = i[r] || a[r] || t && t.prototype[r], e = o && o.length; !n && e--;) t = se[o[e].type], t && t.prototype[r] && (n = !0);
						i[r] = n
					})
				},
				linkSeries: function() {
					var t = this,
						e = t.series;
					ge(e, function(t) {
						t.linkedSeries.length = 0
					}), ge(e, function(e) {
						var n = e.options.linkedTo;
						s(n) && (n = ":previous" === n ? t.series[e.index - 1] : t.get(n), n && (n.linkedSeries.push(e), e.linkedParent = n))
					})
				},
				renderSeries: function() {
					ge(this.series, function(t) {
						t.translate(), t.setTooltipPoints && t.setTooltipPoints(), t.render()
					})
				},
				renderLabels: function() {
					var t = this,
						e = t.options.labels;
					e.items && ge(e.items, function(n) {
						var i = a(e.style, n.style),
							o = r(i.left) + t.plotLeft,
							s = r(i.top) + t.plotTop + 12;

						delete i.left, delete i.top, t.renderer.text(n.html, o, s).attr({
							zIndex: 2
						}).css(i).add()
					})
				},
				render: function() {
					var t = this,
						e = t.axes,
						n = t.renderer,
						i = t.options;
					t.setTitle(), t.legend = new $e(t, i.legend), t.getStacks(), ge(e, function(t) {
						t.setScale()
					}), t.getMargins(), t.maxTicks = null, ge(e, function(t) {
						t.setTickPositions(!0), t.setMaxTicks()
					}), t.adjustTickAmounts(), t.getMargins(), t.drawChartBox(), t.hasCartesianSeries && ge(e, function(t) {
						t.render()
					}), t.seriesGroup || (t.seriesGroup = n.g("series-group").attr({
						zIndex: 3
					}).add()), t.renderSeries(), t.renderLabels(), t.showCredits(i.credits), t.hasRendered = !0
				},
				showCredits: function(t) {
					t.enabled && !this.credits && (this.credits = this.renderer.text(t.text, 0, 0).on("click", function() {
						t.href && (location.href = t.href)
					}).attr({
						align: t.position.align,
						zIndex: 8
					}).css(t.style).add().align(t.position))
				},
				destroy: function() {
					var t, e = this,
						n = e.axes,
						i = e.series,
						a = e.container,
						o = a && a.parentNode;
					for (be(e, "destroy"), Ft[e.index] = H, Ht--, e.renderTo.removeAttribute("data-highcharts-chart"), ve(e), t = n.length; t--;) n[t] = n[t].destroy();
					for (t = i.length; t--;) i[t] = i[t].destroy();
					ge(["title", "subtitle", "chartBackground", "plotBackground", "plotBGImage", "plotBorder", "seriesGroup", "clipRect", "credits", "pointer", "scroller", "rangeSelector", "legend", "resetZoomButton", "tooltip", "renderer"], function(t) {
						var n = e[t];
						n && n.destroy && (e[t] = n.destroy())
					}), a && (a.innerHTML = "", ve(a), o && E(a));
					for (t in e) delete e[t]
				},
				isReadyToRender: function() {
					var t = this;
					return !Dt && ft == ft.top && "complete" !== mt.readyState || qt && !ft.canvg ? (qt ? De.push(function() {
						t.firstRender()
					}, t.options.global.canvasToolsURL) : mt.attachEvent("onreadystatechange", function() {
						mt.detachEvent("onreadystatechange", t.firstRender), "complete" === mt.readyState && t.firstRender()
					}), !1) : !0
				},
				firstRender: function() {
					var t = this,
						e = t.options,
						n = t.callback;
					t.isReadyToRender() && (t.getContainer(), be(t, "init"), t.resetMargins(), t.setChartSize(), t.propFromSeries(), t.getAxes(), ge(e.series || [], function(e) {
						t.initSeries(e)
					}), t.linkSeries(), be(t, "beforeRender"), le.Pointer && (t.pointer = new Be(t, e)), t.render(), t.renderer.draw(), n && n.apply(t, [t]), ge(t.callbacks, function(e) {
						e.apply(t, [t])
					}), t.cloneRenderTo(!0), be(t, "load"))
				},
				splashArray: function(t, e) {
					var n = e[t],
						i = l(n) ? n : [n, n, n, n];
					return [w(e[t + "Top"], i[0]), w(e[t + "Right"], i[1]), w(e[t + "Bottom"], i[2]), w(e[t + "Left"], i[3])]
				}
			}, W.prototype.callbacks = [];
			var Ue = le.CenteredSeriesMixin = {
					getCenter: function() {
						var t, e, n = this.options,
							i = this.chart,
							a = 2 * (n.slicedOffset || 0),
							o = i.plotWidth - 2 * a,
							s = i.plotHeight - 2 * a,
							l = n.center,
							d = [w(l[0], "50%"), w(l[1], "50%"), n.size || "100%", n.innerSize || 0],
							c = yt(o, s);
						return we(d, function(n, i) {
							return e = /%$/.test(n), t = 2 > i || 2 === i && e, (e ? [o, s, c, c][i] * r(n) / 100 : n) + (t ? a : 0)
						})
					}
				},
				Ge = function() {};
			Ge.prototype = {
				init: function(t, e, n) {
					var i, a = this;
					return a.series = t, a.applyOptions(e, n), a.pointAttr = {}, t.options.colorByPoint && (i = t.options.colors || t.chart.options.colors, a.color = a.color || i[t.colorCounter++], t.colorCounter === i.length && (t.colorCounter = 0)), t.chart.pointCount++, a
				},
				applyOptions: function(t, e) {
					var n = this,
						i = n.series,
						o = i.options.pointValKey || i.pointValKey;
					return t = Ge.prototype.optionsToObject.call(this, t), a(n, t), n.options = n.options ? a(n.options, t) : t, o && (n.y = n[o]), n.x === H && i && (n.x = e === H ? i.autoIncrement() : e), n
				},
				optionsToObject: function(t) {
					var e, n = {},
						i = this.series,
						a = i.pointArrayMap || ["y"],
						o = a.length,
						r = 0,
						s = 0;
					if ("number" == typeof t || null === t) n[a[0]] = t;
					else if (d(t))
						for (t.length > o && (e = typeof t[0], "string" === e ? n.name = t[0] : "number" === e && (n.x = t[0]), r++); o > s;) n[a[s++]] = t[r++];
					else "object" == typeof t && (n = t, t.dataLabels && (i._hasPointLabels = !0), t.marker && (i._hasPointMarkers = !0));
					return n
				},
				destroy: function() {
					var t, e = this,
						n = e.series,
						i = n.chart,
						a = i.hoverPoints;
					i.pointCount--, a && (e.setState(), u(a, e), a.length || (i.hoverPoints = null)), e === i.hoverPoint && e.onMouseOut(), (e.graphic || e.dataLabel) && (ve(e), e.destroyElements()), e.legendItem && i.legend.destroyItem(e);
					for (t in e) e[t] = null
				},
				destroyElements: function() {
					for (var t, e = this, n = ["graphic", "dataLabel", "dataLabelUpper", "group", "connector", "shadowGroup"], i = 6; i--;) t = n[i], e[t] && (e[t] = e[t].destroy())
				},
				getLabelConfig: function() {
					var t = this;
					return {
						x: t.category,
						y: t.y,
						key: t.name || t.category,
						series: t.series,
						point: t,
						percentage: t.percentage,
						total: t.total || t.stackTotal
					}
				},
				tooltipFormatter: function(t) {
					var e = this.series,
						n = e.tooltipOptions,
						i = w(n.valueDecimals, ""),
						a = n.valuePrefix || "",
						o = n.valueSuffix || "";
					return ge(e.pointArrayMap || ["y"], function(e) {
						e = "{point." + e, (a || o) && (t = t.replace(e + "}", a + e + "}" + o)), t = t.replace(e + "}", e + ":,." + i + "f}")
					}), C(t, {
						point: this,
						series: this.series
					})
				},
				firePointEvent: function(t, e, n) {
					var i = this,
						a = this.series,
						o = a.options;
					(o.point.events[t] || i.options && i.options.events && i.options.events[t]) && this.importEvents(), "click" === t && o.allowPointSelect && (n = function(t) {
						i.select(null, t.ctrlKey || t.metaKey || t.shiftKey)
					}), be(this, t, e, n)
				}
			};
			var Ye = function() {};
			Ye.prototype = {
				isCartesian: !0,
				type: "line",
				pointClass: Ge,
				sorted: !0,
				requireSorting: !0,
				pointAttrToOptions: {
					stroke: "lineColor",
					"stroke-width": "lineWidth",
					fill: "fillColor",
					r: "radius"
				},
				axisTypes: ["xAxis", "yAxis"],
				colorCounter: 0,
				parallelArrays: ["x", "y"],
				init: function(t, e) {
					var n, i, o = this,
						r = t.series,
						s = function(t, e) {
							return w(t.options.index, t._i) - w(e.options.index, e._i)
						};
					o.chart = t, o.options = e = o.setOptions(e), o.linkedSeries = [], o.bindAxes(), a(o, {
						name: e.name,
						state: ie,
						pointAttr: {},
						visible: e.visible !== !1,
						selected: e.selected === !0
					}), qt && (e.animation = !1), i = e.events;
					for (n in i) _e(o, n, i[n]);
					(i && i.click || e.point && e.point.events && e.point.events.click || e.allowPointSelect) && (t.runTrackerClick = !0), o.getColor(), o.getSymbol(), ge(o.parallelArrays, function(t) {
						o[t + "Data"] = []
					}), o.setData(e.data, !1), o.isCartesian && (t.hasCartesianSeries = !0), r.push(o), o._i = r.length - 1, j(r, s), this.yAxis && j(this.yAxis.series, s), ge(r, function(t, e) {
						t.index = e, t.name = t.name || "Series " + (e + 1)
					})
				},
				bindAxes: function() {
					var t, e = this,
						n = e.options,
						i = e.chart;
					ge(e.axisTypes || [], function(a) {
						ge(i[a], function(i) {
							t = i.options, (n[a] === t.index || n[a] !== H && n[a] === t.id || n[a] === H && 0 === t.index) && (i.series.push(e), e[a] = i, i.isDirty = !0)
						}), e[a] || e.optionalAxis === a || K(18, !0)
					})
				},
				updateParallelArrays: function(t, e) {
					var n = t.series,
						i = arguments,
						a = "number" == typeof e ? function(i) {
							var a = "y" === i && n.toYData ? n.toYData(t) : t[i];
							n[i + "Data"][e] = a
						} : function(t) {
							Array.prototype[e].apply(n[t + "Data"], Array.prototype.slice.call(i, 2))
						};
					ge(n.parallelArrays, a)
				},
				autoIncrement: function() {
					var t = this,
						e = t.options,
						n = t.xIncrement;
					return n = w(n, e.pointStart, 0), t.pointInterval = w(t.pointInterval, e.pointInterval, 1), t.xIncrement = n + t.pointInterval, n
				},
				getSegments: function() {
					var t, e = this,
						n = -1,
						i = [],
						a = e.points,
						o = a.length;
					if (o)
						if (e.options.connectNulls) {
							for (t = o; t--;) null === a[t].y && a.splice(t, 1);
							a.length && (i = [a])
						} else ge(a, function(t, e) {
							null === t.y ? (e > n + 1 && i.push(a.slice(n + 1, e)), n = e) : e === o - 1 && i.push(a.slice(n + 1, e + 1))
						});
					e.segments = i
				},
				setOptions: function(t) {
					var e, n = this.chart,
						i = n.options,
						a = i.plotOptions,
						r = n.userOptions || {},
						s = r.plotOptions || {},
						l = a[this.type];
					return this.userOptions = t, e = o(l, a.series, t), this.tooltipOptions = o(G.tooltip, G.plotOptions[this.type].tooltip, r.tooltip, s.series && s.series.tooltip, s[this.type] && s[this.type].tooltip, t.tooltip), null === l.marker && delete e.marker, e
				},
				getCyclic: function(t, e, n) {
					var i, a = this.userOptions,
						o = "_" + t + "Index",
						r = t + "Counter";
					e || (g(a[o]) ? i = a[o] : (a[o] = i = this.chart[r] % n.length, this.chart[r] += 1), e = n[i]), this[t] = e
				},
				getColor: function() {
					this.options.colorByPoint || this.getCyclic("color", this.options.color || Ce[this.type].color, this.chart.options.colors)
				},
				getSymbol: function() {
					var t = this.options.marker;
					this.getCyclic("symbol", t.symbol, this.chart.options.symbols), /^url/.test(this.symbol) && (t.radius = 0)
				},
				drawLegendSymbol: Xe.drawLineMarker,
				setData: function(t, e, n, i) {
					var a, o, r, l = this,
						p = l.points,
						h = p && p.length || 0,
						u = l.options,
						g = l.chart,
						m = null,
						f = l.xAxis,
						_ = f && !!f.categories,
						v = l.tooltipPoints,
						b = u.turboThreshold,
						x = this.xData,
						y = this.yData,
						k = l.pointArrayMap,
						z = k && k.length;
					if (t = t || [], a = t.length, e = w(e, !0), i === !1 || !a || h !== a || l.cropped || l.hasGroupedData) {
						if (l.xIncrement = null, l.pointRange = _ ? 1 : u.pointRange, l.colorCounter = 0, ge(this.parallelArrays, function(t) {
							l[t + "Data"].length = 0
						}), b && a > b) {
							for (o = 0; null === m && a > o;) m = t[o], o++;
							if (c(m)) {
								var C = w(u.pointStart, 0),
									T = w(u.pointInterval, 1);
								for (o = 0; a > o; o++) x[o] = C, y[o] = t[o], C += T;
								l.xIncrement = C
							} else if (d(m))
								if (z)
									for (o = 0; a > o; o++) r = t[o], x[o] = r[0], y[o] = r.slice(1, z + 1);
								else
									for (o = 0; a > o; o++) r = t[o], x[o] = r[0], y[o] = r[1];
							else K(12)
						} else
							for (o = 0; a > o; o++) t[o] !== H && (r = {
								series: l
							}, l.pointClass.prototype.applyOptions.apply(r, [t[o]]), l.updateParallelArrays(r, o), _ && r.name && (f.names[r.x] = r.name));
						for (s(y[0]) && K(14, !0), l.data = [], l.options.data = t, o = h; o--;) p[o] && p[o].destroy && p[o].destroy();
						v && (v.length = 0), f && (f.minRange = f.userMinRange), l.isDirty = l.isDirtyData = g.isDirtyBox = !0, n = !1
					} else ge(t, function(t, e) {
						p[e].update(t, !1, null, !1)
					});
					e && g.redraw(n)
				},
				processData: function(t) {
					var e, n, i, a, o, r, s, l, d = this,
						c = d.xData,
						p = d.yData,
						h = c.length,
						u = 0,
						g = d.xAxis,
						m = d.options,
						f = m.cropThreshold,
						w = 0,
						_ = d.isCartesian;
					if (_ && !d.isDirty && !g.isDirty && !d.yAxis.isDirty && !t) return !1;
					for (g && (r = g.getExtremes(), s = r.min, l = r.max), _ && d.sorted && (!f || h > f || d.forceCrop) && (c[h - 1] < s || c[0] > l ? (c = [], p = []) : (c[0] < s || c[h - 1] > l) && (e = this.cropData(d.xData, d.yData, s, l), c = e.xData, p = e.yData, u = e.start, n = !0, w = c.length)), o = c.length - 1; o >= 0; o--) i = c[o] - c[o - 1], !n && c[o] > s && c[o] < l && w++, i > 0 && (a === H || a > i) ? a = i : 0 > i && d.requireSorting && K(15);
					d.cropped = n, d.cropStart = u, d.processedXData = c, d.processedYData = p, d.activePointCount = w, null === m.pointRange && (d.pointRange = a || 1), d.closestPointRange = a
				},
				cropData: function(t, e, n, i) {
					var a, o = t.length,
						r = 0,
						s = o,
						l = w(this.cropShoulder, 1);
					for (a = 0; o > a; a++)
						if (t[a] >= n) {
							r = xt(0, a - l);
							break
						}
					for (; o > a; a++)
						if (t[a] > i) {
							s = a + l;
							break
						}
					return {
						xData: t.slice(r, s),
						yData: e.slice(r, s),
						start: r,
						end: s
					}
				},
				generatePoints: function() {
					var t, e, n, i, a = this,
						o = a.options,
						r = o.data,
						s = a.data,
						l = a.processedXData,
						d = a.processedYData,
						c = a.pointClass,
						p = l.length,
						h = a.cropStart || 0,
						u = a.hasGroupedData,
						g = [];
					if (!s && !u) {
						var m = [];
						m.length = r.length, s = a.data = m
					}
					for (i = 0; p > i; i++) e = h + i, u ? g[i] = (new c).init(a, [l[i]].concat(f(d[i]))) : (s[e] ? n = s[e] : r[e] !== H && (s[e] = n = (new c).init(a, r[e], l[i])), g[i] = n), g[i].index = e;
					if (s && (p !== (t = s.length) || u))
						for (i = 0; t > i; i++) i !== h || u || (i += p), s[i] && (s[i].destroyElements(), s[i].plotX = H);
					a.data = s, a.points = g
				},
				getExtremes: function(t) {
					var e, n, i, a, o, r, s, l, d, c = this.xAxis,
						p = this.yAxis,
						h = this.processedXData,
						u = [],
						g = 0,
						m = c.getExtremes(),
						f = m.min,
						_ = m.max;
					for (t = t || this.stackedYData || this.processedYData, e = t.length, l = 0; e > l; l++)
						if (r = h[l], s = t[l], n = null !== s && s !== H && (!p.isLog || s.length || s > 0), i = this.getExtremesFromAll || this.cropped || (h[l + 1] || r) >= f && (h[l - 1] || r) <= _, n && i)
							if (d = s.length)
								for (; d--;) null !== s[d] && (u[g++] = s[d]);
							else u[g++] = s;
					this.dataMin = w(a, I(u)), this.dataMax = w(o, P(u))
				},
				translate: function() {
					this.processedXData || this.processData(), this.generatePoints();
					var t, e = this,
						n = e.options,
						i = n.stacking,
						a = e.xAxis,
						o = a.categories,
						r = e.yAxis,
						s = e.points,
						l = s.length,
						d = !!e.modifyValue,
						p = n.pointPlacement,
						h = "between" === p || c(p),
						u = n.threshold;
					for (t = 0; l > t; t++) {
						var m, f, _ = s[t],
							v = _.x,
							b = _.y,
							x = _.low,
							y = i && r.stacks[(e.negStacks && u > b ? "-" : "") + e.stackKey];
						r.isLog && 0 >= b && (_.y = b = null, K(10)), _.plotX = a.translate(v, 0, 0, 0, 1, p, "flags" === this.type), i && e.visible && y && y[v] && (m = y[v], f = m.points[e.index + "," + t], x = f[0], b = f[1], 0 === x && (x = w(u, r.min)), r.isLog && 0 >= x && (x = null), _.total = _.stackTotal = m.total, _.percentage = m.total && _.y / m.total * 100, _.stackY = b, m.setOffset(e.pointXOffset || 0, e.barW || 0)), _.yBottom = g(x) ? r.translate(x, 0, 1, 0, 1) : null, d && (b = e.modifyValue(b, _)), _.plotY = "number" == typeof b && b !== 1 / 0 ? r.translate(b, 0, 1, 0, 1) : H, _.clientX = h ? a.translate(v, 0, 0, 0, 1) : _.plotX, _.negative = _.y < (u || 0), _.category = o && o[_.x] !== H ? o[_.x] : _.x
					}
					e.getSegments()
				},
				animate: function(t) {
					var e, n, i, o = this,
						r = o.chart,
						s = r.renderer,
						d = o.options.animation,
						c = o.clipBox || r.clipBox,
						p = r.inverted;
					d && !l(d) && (d = Ce[o.type].animation), i = ["_sharedClip", d.duration, d.easing, c.height].join(","), t ? (e = r[i], n = r[i + "m"], e || (r[i] = e = s.clipRect(a(c, {
						width: 0
					})), r[i + "m"] = n = s.clipRect(-99, p ? -r.plotLeft : -r.plotTop, 99, p ? r.chartWidth : r.chartHeight)), o.group.clip(e), o.markerGroup.clip(n), o.sharedClipKey = i) : (e = r[i], e && e.animate({
						width: r.plotSizeX
					}, d), r[i + "m"] && r[i + "m"].animate({
						width: r.plotSizeX + 99
					}, d), o.animate = null)
				},
				afterAnimate: function() {
					var t = this.chart,
						e = this.sharedClipKey,
						n = this.group,
						i = this.clipBox;
					n && this.options.clip !== !1 && (e && i || n.clip(i ? t.renderer.clipRect(i) : t.clipRect), this.markerGroup.clip()), be(this, "afterAnimate"), setTimeout(function() {
						e && t[e] && (i || (t[e] = t[e].destroy()), t[e + "m"] && (t[e + "m"] = t[e + "m"].destroy()))
					}, 100)
				},
				drawPoints: function() {
					var t, e, n, i, o, r, s, l, d, c, p, h, u, g = this,
						m = g.points,
						f = g.chart,
						_ = g.options,
						v = _.marker,
						b = g.pointAttr[""],
						x = g.markerGroup,
						y = w(v.enabled, !g.requireSorting || g.activePointCount < .5 * g.xAxis.len / v.radius);
					if (v.enabled !== !1 || g._hasPointMarkers)
						for (i = m.length; i--;) o = m[i], e = vt(o.plotX), n = o.plotY, d = o.graphic, c = o.marker || {}, p = !!o.marker, h = y && c.enabled === H || c.enabled, u = f.isInsidePlot(_t(e), n, f.inverted), h && n !== H && !isNaN(n) && null !== o.y ? (t = o.pointAttr[o.selected ? oe : ie] || b, r = t.r, s = w(c.symbol, g.symbol), l = 0 === s.indexOf("url"), d ? d[u ? "show" : "hide"](!0).animate(a({
							x: e - r,
							y: n - r
						}, d.symbolName ? {
							width: 2 * r,
							height: 2 * r
						} : {})) : u && (r > 0 || l) && (o.graphic = d = f.renderer.symbol(s, e - r, n - r, 2 * r, 2 * r, p ? c : v).attr(t).add(x))) : d && (o.graphic = d.destroy())
				},
				convertAttribs: function(t, e, n, i) {
					var a, o, r = this.pointAttrToOptions,
						s = {};
					t = t || {}, e = e || {}, n = n || {}, i = i || {};
					for (a in r) o = r[a], s[a] = w(t[o], e[a], n[a], i[a]);
					return s
				},
				getAttribs: function() {
					var t, e, n, i, o, r, s = this,
						l = s.options,
						d = Ce[s.type].marker ? l.marker : l,
						c = d.states,
						p = c[ae],
						h = s.color,
						u = {
							stroke: h,
							fill: h
						},
						m = s.points || [],
						f = [],
						w = s.pointAttrToOptions,
						_ = s.hasPointSpecificOptions,
						v = l.negativeColor,
						b = d.lineColor,
						x = d.fillColor,
						y = l.turboThreshold;
					if (l.marker ? (p.radius = p.radius || d.radius + p.radiusPlus, p.lineWidth = p.lineWidth || d.lineWidth + p.lineWidthPlus) : p.color = p.color || Pe(p.color || h).brighten(p.brightness).get(), f[ie] = s.convertAttribs(d, u), ge([ae, oe], function(t) {
						f[t] = s.convertAttribs(c[t], f[ie])
					}), s.pointAttr = f, e = m.length, !y || y > e || _)
						for (; e--;) {
							if (n = m[e], d = n.options && n.options.marker || n.options, d && d.enabled === !1 && (d.radius = 0), n.negative && v && (n.color = n.fillColor = v), _ = l.colorByPoint || n.color, n.options)
								for (r in w) g(d[w[r]]) && (_ = !0);
							_ ? (d = d || {}, i = [], c = d.states || {}, t = c[ae] = c[ae] || {}, l.marker || (t.color = t.color || !n.options.color && p.color || Pe(n.color).brighten(t.brightness || p.brightness).get()), o = {
								color: n.color
							}, x || (o.fillColor = n.color), b || (o.lineColor = n.color), i[ie] = s.convertAttribs(a(o, d), f[ie]), i[ae] = s.convertAttribs(c[ae], f[ae], i[ie]), i[oe] = s.convertAttribs(c[oe], f[oe], i[ie])) : i = f, n.pointAttr = i
						}
				},
				destroy: function() {
					var t, e, n, i, a, o = this,
						r = o.chart,
						s = /AppleWebKit\/533/.test(jt),
						l = o.data || [];
					for (be(o, "destroy"), ve(o), ge(o.axisTypes || [], function(t) {
						a = o[t], a && (u(a.series, o), a.isDirty = a.forceRedraw = !0)
					}), o.legendItem && o.chart.legend.destroyItem(o), e = l.length; e--;) n = l[e], n && n.destroy && n.destroy();
					o.points = null, clearTimeout(o.animationTimeout), ge(["area", "graph", "dataLabelsGroup", "group", "markerGroup", "tracker", "graphNeg", "areaNeg", "posClip", "negClip"], function(e) {
						o[e] && (t = s && "group" === e ? "hide" : "destroy", o[e][t]())
					}), r.hoverSeries === o && (r.hoverSeries = null), u(r.series, o);
					for (i in o) delete o[i]
				},
				getSegmentPath: function(t) {
					var e = this,
						n = [],
						i = e.options.step;
					return ge(t, function(a, o) {
						var r, s = a.plotX,
							l = a.plotY;
						e.getPointSpline ? n.push.apply(n, e.getPointSpline(t, a, o)) : (n.push(o ? ee : te), i && o && (r = t[o - 1], "right" === i ? n.push(r.plotX, l) : "center" === i ? n.push((r.plotX + s) / 2, r.plotY, (r.plotX + s) / 2, l) : n.push(s, r.plotY)), n.push(a.plotX, a.plotY))
					}), n
				},
				getGraphPath: function() {
					var t, e = this,
						n = [],
						i = [];
					return ge(e.segments, function(a) {
						t = e.getSegmentPath(a), a.length > 1 ? n = n.concat(t) : i.push(a[0])
					}), e.singlePoints = i, e.graphPath = n, n
				},
				drawGraph: function() {
					var t = this,
						e = this.options,
						n = [
							["graph", e.lineColor || this.color]
						],
						i = e.lineWidth,
						a = e.dashStyle,
						o = "square" !== e.linecap,
						r = this.getGraphPath(),
						s = e.negativeColor;
					s && n.push(["graphNeg", s]), ge(n, function(n, s) {
						var l, d = n[0],
							c = t[d];
						c ? (ke(c), c.animate({
							d: r
						})) : i && r.length && (l = {
							stroke: n[1],
							"stroke-width": i,
							fill: Qt,
							zIndex: 1
						}, a ? l.dashstyle = a : o && (l["stroke-linecap"] = l["stroke-linejoin"] = "round"), t[d] = t.chart.renderer.path(r).attr(l).add(t.group).shadow(!s && e.shadow))
					})
				},
				clipNeg: function() {
					var t, e, n, i, a, o = this.options,
						r = this.chart,
						s = r.renderer,
						l = o.negativeColor || o.negativeFillColor,
						d = this.graph,
						c = this.area,
						p = this.posClip,
						h = this.negClip,
						u = r.chartWidth,
						g = r.chartHeight,
						m = xt(u, g),
						f = this.yAxis;
					l && (d || c) && (t = _t(f.toPixels(o.threshold || 0, !0)), 0 > t && (m -= t), i = {
						x: 0,
						y: 0,
						width: m,
						height: t
					}, a = {
						x: 0,
						y: t,
						width: m,
						height: m
					}, r.inverted && (i.height = a.y = r.plotWidth - t, s.isVML && (i = {
						x: r.plotWidth - t - r.plotLeft,
						y: 0,
						width: u,
						height: g
					}, a = {
						x: t + r.plotLeft - u,
						y: 0,
						width: r.plotLeft + t,
						height: u
					})), f.reversed ? (e = a, n = i) : (e = i, n = a), p ? (p.animate(e), h.animate(n)) : (this.posClip = p = s.clipRect(e), this.negClip = h = s.clipRect(n), d && this.graphNeg && (d.clip(p), this.graphNeg.clip(h)), c && (c.clip(p), this.areaNeg.clip(h))))
				},
				invertGroups: function() {
					function t() {
						var t = {
							width: e.yAxis.len,
							height: e.xAxis.len
						};
						ge(["group", "markerGroup"], function(n) {
							e[n] && e[n].attr(t).invert()
						})
					}
					var e = this,
						n = e.chart;
					e.xAxis && (_e(n, "resize", t), _e(e, "destroy", function() {
						ve(n, "resize", t)
					}), t(), e.invertGroups = t)
				},
				plotGroup: function(t, e, n, i, a) {
					var o = this[t],
						r = !o;
					return r && (this[t] = o = this.chart.renderer.g(e).attr({
						visibility: n,
						zIndex: i || .1
					}).add(a)), o[r ? "attr" : "animate"](this.getPlotBox()), o
				},
				getPlotBox: function() {
					var t = this.chart,
						e = this.xAxis,
						n = this.yAxis;
					return t.inverted && (e = n, n = this.xAxis), {
						translateX: e ? e.left : t.plotLeft,
						translateY: n ? n.top : t.plotTop,
						scaleX: 1,
						scaleY: 1
					}
				},
				render: function() {
					var t, e = this,
						n = e.chart,
						i = e.options,
						a = i.animation,
						o = a && !!e.animate && n.renderer.isSVG && w(a.duration, 500) || 0,
						r = e.visible ? Zt : Vt,
						s = i.zIndex,
						l = e.hasRendered,
						d = n.seriesGroup;
					t = e.plotGroup("group", "series", r, s, d), e.markerGroup = e.plotGroup("markerGroup", "markers", r, s, d), o && e.animate(!0), e.getAttribs(), t.inverted = e.isCartesian ? n.inverted : !1, e.drawGraph && (e.drawGraph(), e.clipNeg()), ge(e.points, function(t) {
						t.redraw && t.redraw()
					}), e.drawDataLabels && e.drawDataLabels(), e.visible && e.drawPoints(), e.drawTracker && e.options.enableMouseTracking !== !1 && e.drawTracker(), n.inverted && e.invertGroups(), i.clip === !1 || e.sharedClipKey || l || t.clip(n.clipRect), o && e.animate(), l || (o ? e.animationTimeout = setTimeout(function() {
						e.afterAnimate()
					}, o) : e.afterAnimate()), e.isDirty = e.isDirtyData = !1, e.hasRendered = !0
				},
				redraw: function() {
					var t = this,
						e = t.chart,
						n = t.isDirtyData,
						i = t.group,
						a = t.xAxis,
						o = t.yAxis;
					i && (e.inverted && i.attr({
						width: e.plotWidth,
						height: e.plotHeight
					}), i.animate({
						translateX: w(a && a.left, e.plotLeft),
						translateY: w(o && o.top, e.plotTop)
					})), t.translate(), t.setTooltipPoints && t.setTooltipPoints(!0), t.render(), n && be(t, "updatedData")
				}
			}, F.prototype = {
				destroy: function() {
					A(this, this.axis)
				},
				render: function(t) {
					var e = this.options,
						n = e.format,
						i = n ? C(n, this) : e.formatter.call(this);
					this.label ? this.label.attr({
						text: i,
						visibility: Vt
					}) : this.label = this.axis.chart.renderer.text(i, null, null, e.useHTML).css(e.style).attr({
						align: this.textAlign,
						rotation: e.rotation,
						visibility: Vt
					}).add(t)
				},
				setOffset: function(t, e) {
					var n, i = this,
						a = i.axis,
						o = a.chart,
						r = o.inverted,
						s = this.isNegative,
						l = a.translate(a.usePercentage ? 100 : this.total, 0, 0, 0, 1),
						d = a.translate(0),
						c = kt(l - d),
						p = o.xAxis[0].translate(this.x) + t,
						h = o.plotHeight,
						u = {
							x: r ? s ? l : l - c : p,
							y: r ? h - p - e : s ? h - l - c : h - l,
							width: r ? c : e,
							height: r ? e : c
						},
						g = this.label;
					g && (g.align(this.alignOptions, null, u), n = g.alignAttr, g[this.options.crop === !1 || o.isInsidePlot(n.x, n.y) ? "show" : "hide"](!0))
				}
			}, R.prototype.buildStacks = function() {
				var t = this.series,
					e = w(this.options.reversedStacks, !0),
					n = t.length;
				if (!this.isXAxis) {
					for (this.usePercentage = !1; n--;) t[e ? n : t.length - n - 1].setStackedPoints();
					if (this.usePercentage)
						for (n = 0; n < t.length; n++) t[n].setPercentStacks()
				}
			}, R.prototype.renderStackTotals = function() {
				var t, e, n, i = this,
					a = i.chart,
					o = a.renderer,
					r = i.stacks,
					s = i.stackTotalGroup;
				s || (i.stackTotalGroup = s = o.g("stack-labels").attr({
					visibility: Zt,
					zIndex: 6
				}).add()), s.translate(a.plotLeft, a.plotTop);
				for (t in r) {
					e = r[t];
					for (n in e) e[n].render(s)
				}
			}, Ye.prototype.setStackedPoints = function() {
				if (this.options.stacking && (this.visible === !0 || this.chart.options.chart.ignoreHiddenSeries === !1)) {
					var t, e, n, i, a, o, r, s, l = this,
						d = l.processedXData,
						c = l.processedYData,
						p = [],
						h = c.length,
						u = l.options,
						g = u.threshold,
						m = u.stack,
						f = u.stacking,
						w = l.stackKey,
						_ = "-" + w,
						v = l.negStacks,
						b = l.yAxis,
						x = b.stacks,
						y = b.oldStacks;
					for (o = 0; h > o; o++) r = d[o], s = c[o], a = l.index + "," + o, t = v && g > s, i = t ? _ : w, x[i] || (x[i] = {}), x[i][r] || (y[i] && y[i][r] ? (x[i][r] = y[i][r], x[i][r].total = null) : x[i][r] = new F(b, b.options.stackLabels, t, r, m)), e = x[i][r], e.points[a] = [e.cum || 0], "percent" === f ? (n = t ? w : _, v && x[n] && x[n][r] ? (n = x[n][r], e.total = n.total = xt(n.total, e.total) + kt(s) || 0) : e.total = L(e.total + (kt(s) || 0))) : e.total = L(e.total + (s || 0)), e.cum = (e.cum || 0) + (s || 0), e.points[a].push(e.cum), p[o] = e.cum;
					"percent" === f && (b.usePercentage = !0), this.stackedYData = p, b.oldStacks = {}
				}
			}, Ye.prototype.setPercentStacks = function() {
				var t = this,
					e = t.stackKey,
					n = t.yAxis.stacks,
					i = t.processedXData;
				ge([e, "-" + e], function(e) {
					for (var a, o, r, s, l = i.length; l--;) a = i[l], o = n[e] && n[e][a], r = o && o.points[t.index + "," + l], r && (s = o.total ? 100 / o.total : 0, r[0] = L(r[0] * s), r[1] = L(r[1] * s), t.stackedYData[l] = r[1])
				})
			}, a(W.prototype, {
				addSeries: function(t, e, n) {
					var i, a = this;
					return t && (e = w(e, !0), be(a, "addSeries", {
						options: t
					}, function() {
						i = a.initSeries(t), a.isDirtyLegend = !0, a.linkSeries(), e && a.redraw(n)
					})), i
				},
				addAxis: function(t, e, n, i) {
					var a, r = e ? "xAxis" : "yAxis",
						s = this.options;
					a = new R(this, o(t, {
						index: this[r].length,
						isX: e
					})), s[r] = f(s[r] || {}), s[r].push(t), w(n, !0) && this.redraw(i)
				},
				showLoading: function(t) {
					var e = this,
						n = e.options,
						i = e.loadingDiv,
						o = n.loading,
						r = function() {
							i && _(i, {
								left: e.plotLeft + Kt,
								top: e.plotTop + Kt,
								width: e.plotWidth + Kt,
								height: e.plotHeight + Kt
							})
						};
					i || (e.loadingDiv = i = v(Ut, {
						className: Jt + "loading"
					}, a(o.style, {
						zIndex: 10,
						display: Qt
					}), e.container), e.loadingSpan = v("span", null, o.labelStyle, i), _e(e, "redraw", r)), e.loadingSpan.innerHTML = t || n.lang.loading, e.loadingShown || (_(i, {
						opacity: 0,
						display: ""
					}), ye(i, {
						opacity: o.style.opacity
					}, {
						duration: o.showDuration || 0
					}), e.loadingShown = !0), r()
				},
				hideLoading: function() {
					var t = this.options,
						e = this.loadingDiv;
					e && ye(e, {
						opacity: 0
					}, {
						duration: t.loading.hideDuration || 100,
						complete: function() {
							_(e, {
								display: Qt
							})
						}
					}), this.loadingShown = !1
				}
			}), a(Ge.prototype, {
				update: function(t, e, n, i) {
					function a() {
						r.applyOptions(t), l(t) && !d(t) && (r.redraw = function() {
							c && (t && t.marker && t.marker.symbol ? r.graphic = c.destroy() : c.attr(r.pointAttr[r.state || ""])), t && t.dataLabels && r.dataLabel && (r.dataLabel = r.dataLabel.destroy()), r.redraw = null
						}), o = r.index, s.updateParallelArrays(r, o), h.data[o] = r.options, s.isDirty = s.isDirtyData = !0, !s.fixedBox && s.hasCartesianSeries && (p.isDirtyBox = !0), "point" === h.legendType && p.legend.destroyItem(r), e && p.redraw(n)
					}
					var o, r = this,
						s = r.series,
						c = r.graphic,
						p = s.chart,
						h = s.options;
					e = w(e, !0), i === !1 ? a() : r.firePointEvent("update", {
						options: t
					}, a)
				},
				remove: function(t, e) {
					var n, i = this,
						a = i.series,
						o = a.points,
						r = a.chart,
						s = a.data;
					O(e, r), t = w(t, !0), i.firePointEvent("remove", null, function() {
						n = ue(i, s), s.length === o.length && o.splice(n, 1), s.splice(n, 1), a.options.data.splice(n, 1), a.updateParallelArrays(i, "splice", n, 1), i.destroy(), a.isDirty = !0, a.isDirtyData = !0, t && r.redraw()
					})
				}
			}), a(Ye.prototype, {
				addPoint: function(t, e, n, i) {
					var a, o, r, s, l = this,
						d = l.options,
						c = l.data,
						p = l.graph,
						h = l.area,
						u = l.chart,
						g = l.xAxis && l.xAxis.names,
						m = p && p.shift || 0,
						f = d.data,
						_ = l.xData;
					if (O(i, u), n && ge([p, h, l.graphNeg, l.areaNeg], function(t) {
						t && (t.shift = m + 1)
					}), h && (h.isArea = !0), e = w(e, !0), a = {
						series: l
					}, l.pointClass.prototype.applyOptions.apply(a, [t]), r = a.x, s = _.length, l.requireSorting && r < _[s - 1])
						for (o = !0; s && _[s - 1] > r;) s--;
					l.updateParallelArrays(a, "splice", s, 0, 0), l.updateParallelArrays(a, s), g && a.name && (g[r] = a.name), f.splice(s, 0, t), o && (l.data.splice(s, 0, null), l.processData()), "point" === d.legendType && l.generatePoints(), n && (c[0] && c[0].remove ? c[0].remove(!1) : (c.shift(), l.updateParallelArrays(a, "shift"), f.shift())), l.isDirty = !0, l.isDirtyData = !0, e && (l.getAttribs(), u.redraw())
				},
				remove: function(t, e) {
					var n = this,
						i = n.chart;
					t = w(t, !0), n.isRemoving || (n.isRemoving = !0, be(n, "remove", null, function() {
						n.destroy(), i.isDirtyLegend = i.isDirtyBox = !0, i.linkSeries(), t && i.redraw(e)
					})), n.isRemoving = !1
				},
				update: function(t, e) {
					var n, i = this,
						r = this.chart,
						s = this.userOptions,
						l = this.type,
						d = se[l].prototype,
						c = ["group", "markerGroup", "dataLabelsGroup"];
					ge(c, function(t) {
						c[t] = i[t], delete i[t]
					}), t = o(s, {
						animation: !1,
						index: this.index,
						pointStart: this.xData[0]
					}, {
						data: this.options.data
					}, t), this.remove(!1);
					for (n in d) d.hasOwnProperty(n) && (this[n] = H);
					a(this, se[t.type || l].prototype), ge(c, function(t) {
						i[t] = c[t]
					}), this.init(r, t), r.linkSeries(), w(e, !0) && r.redraw(!1)
				}
			}), a(R.prototype, {
				update: function(t, e) {
					var n = this.chart;
					t = n.options[this.coll][this.options.index] = o(this.userOptions, t), this.destroy(!0), this._addedPlotLB = H, this.init(n, a(t, {
						events: H
					})), n.isDirtyBox = !0, w(e, !0) && n.redraw()
				},
				remove: function(t) {
					for (var e = this.chart, n = this.coll, i = this.series, a = i.length; a--;) i[a] && i[a].remove(!1);
					u(e.axes, this), u(e[n], this), e.options[n].splice(this.options.index, 1), ge(e[n], function(t, e) {
						t.options.index = e
					}), this.destroy(), e.isDirtyBox = !0, w(t, !0) && e.redraw()
				},
				setTitle: function(t, e) {
					this.update({
						title: t
					}, e)
				},
				setCategories: function(t, e) {
					this.update({
						categories: t
					}, e)
				}
			});
			var Ve = b(Ye);
			se.line = Ve, Ce.area = o(Te, {
				threshold: 0
			});
			var Je = b(Ye, {
				type: "area",
				getSegments: function() {
					var t, e, n, i, a = this,
						o = [],
						r = [],
						s = [],
						l = this.xAxis,
						d = this.yAxis,
						c = d.stacks[this.stackKey],
						p = {},
						h = this.points,
						u = this.options.connectNulls;
					if (this.options.stacking && !this.cropped) {
						for (n = 0; n < h.length; n++) p[h[n].x] = h[n];
						for (i in c) null !== c[i].total && s.push(+i);
						s.sort(function(t, e) {
							return t - e
						}), ge(s, function(i) {
							var o, s = 0;
							if (!u || p[i] && null !== p[i].y)
								if (p[i]) r.push(p[i]);
								else {
									for (n = a.index; n <= d.series.length; n++)
										if (o = c[i].points[n + "," + i]) {
											s = o[1];
											break
										}
									t = l.translate(i), e = d.toPixels(s, !0), r.push({
										y: null,
										plotX: t,
										clientX: t,
										plotY: e,
										yBottom: e,
										onMouseOver: Wt
									})
								}
						}), r.length && o.push(r)
					} else Ye.prototype.getSegments.call(this), o = this.segments;
					this.segments = o
				},
				getSegmentPath: function(t) {
					var e, n, i = Ye.prototype.getSegmentPath.call(this, t),
						a = [].concat(i),
						o = this.options,
						r = i.length,
						s = this.yAxis.getThreshold(o.threshold);
					if (3 === r && a.push(ee, i[1], i[2]), o.stacking && !this.closedStacks)
						for (e = t.length - 1; e >= 0; e--) n = w(t[e].yBottom, s), e < t.length - 1 && o.step && a.push(t[e + 1].plotX, n), a.push(t[e].plotX, n);
					else this.closeSegment(a, t, s);
					return this.areaPath = this.areaPath.concat(a), i
				},
				closeSegment: function(t, e, n) {
					t.push(ee, e[e.length - 1].plotX, n, ee, e[0].plotX, n)
				},
				drawGraph: function() {
					this.areaPath = [], Ye.prototype.drawGraph.apply(this);
					var t = this,
						e = this.areaPath,
						n = this.options,
						i = n.negativeColor,
						a = n.negativeFillColor,
						o = [
							["area", this.color, n.fillColor]
						];
					(i || a) && o.push(["areaNeg", i, a]), ge(o, function(i) {
						var a = i[0],
							o = t[a];
						o ? o.animate({
							d: e
						}) : t[a] = t.chart.renderer.path(e).attr({
							fill: w(i[2], Pe(i[1]).setOpacity(w(n.fillOpacity, .75)).get()),
							zIndex: 0
						}).add(t.group)
					})
				},
				drawLegendSymbol: Xe.drawRectangle
			});
			se.area = Je, Ce.spline = o(Te);
			var Ze = b(Ye, {
				type: "spline",
				getPointSpline: function(t, e, n) {
					var i, a, o, r, s, l = 1.5,
						d = l + 1,
						c = e.plotX,
						p = e.plotY,
						h = t[n - 1],
						u = t[n + 1];
					if (h && u) {
						var g, m = h.plotX,
							f = h.plotY,
							w = u.plotX,
							_ = u.plotY;
						i = (l * c + m) / d, a = (l * p + f) / d, o = (l * c + w) / d, r = (l * p + _) / d, g = (r - a) * (o - c) / (o - i) + p - r, a += g, r += g, a > f && a > p ? (a = xt(f, p), r = 2 * p - a) : f > a && p > a && (a = yt(f, p), r = 2 * p - a), r > _ && r > p ? (r = xt(_, p), a = 2 * p - r) : _ > r && p > r && (r = yt(_, p), a = 2 * p - r), e.rightContX = o, e.rightContY = r
					}
					return n ? (s = ["C", h.rightContX || h.plotX, h.rightContY || h.plotY, i || c, a || p, c, p], h.rightContX = h.rightContY = null) : s = [te, c, p], s
				}
			});
			se.spline = Ze, Ce.areaspline = o(Ce.area);
			var Ke = Je.prototype,
				Qe = b(Ze, {
					type: "areaspline",
					closedStacks: !0,
					getSegmentPath: Ke.getSegmentPath,
					closeSegment: Ke.closeSegment,
					drawGraph: Ke.drawGraph,
					drawLegendSymbol: Xe.drawRectangle
				});
			se.areaspline = Qe, Ce.column = o(Te, {
				borderColor: "#FFFFFF",
				borderRadius: 0,
				groupPadding: .2,
				marker: null,
				pointPadding: .1,
				minPointLength: 0,
				cropThreshold: 50,
				pointRange: null,
				states: {
					hover: {
						brightness: .1,
						shadow: !1,
						halo: !1
					},
					select: {
						color: "#C0C0C0",
						borderColor: "#000000",
						shadow: !1
					}
				},
				dataLabels: {
					align: null,
					verticalAlign: null,
					y: null
				},
				stickyTracking: !1,
				tooltip: {
					distance: 6
				},
				threshold: 0
			});
			var tn = b(Ye, {
				type: "column",
				pointAttrToOptions: {
					stroke: "borderColor",
					fill: "color",
					r: "borderRadius"
				},
				cropShoulder: 0,
				trackerGroups: ["group", "dataLabelsGroup"],
				negStacks: !0,
				init: function() {
					Ye.prototype.init.apply(this, arguments);
					var t = this,
						e = t.chart;
					e.hasRendered && ge(e.series, function(e) {
						e.type === t.type && (e.isDirty = !0)
					})
				},
				getColumnMetrics: function() {
					var t, e, n = this,
						i = n.options,
						a = n.xAxis,
						o = n.yAxis,
						r = a.reversed,
						s = {},
						l = 0;
					i.grouping === !1 ? l = 1 : ge(n.chart.series, function(i) {
						var a = i.options,
							r = i.yAxis;
						i.type === n.type && i.visible && o.len === r.len && o.pos === r.pos && (a.stacking ? (t = i.stackKey, s[t] === H && (s[t] = l++), e = s[t]) : a.grouping !== !1 && (e = l++), i.columnIndex = e)
					});
					var d = yt(kt(a.transA) * (a.ordinalSlope || i.pointRange || a.closestPointRange || a.tickInterval || 1), a.len),
						c = d * i.groupPadding,
						p = d - 2 * c,
						h = p / l,
						u = i.pointWidth,
						m = g(u) ? (h - u) / 2 : h * i.pointPadding,
						f = w(u, h - 2 * m),
						_ = (r ? l - (n.columnIndex || 0) : n.columnIndex) || 0,
						v = m + (c + _ * h - d / 2) * (r ? -1 : 1);
					return n.columnMetrics = {
						width: f,
						offset: v
					}
				},
				translate: function() {
					var t = this,
						e = t.chart,
						n = t.options,
						i = t.borderWidth = w(n.borderWidth, t.activePointCount > .5 * t.xAxis.len ? 0 : 1),
						a = t.yAxis,
						o = n.threshold,
						r = t.translatedThreshold = a.getThreshold(o),
						s = w(n.minPointLength, 5),
						l = t.getColumnMetrics(),
						d = l.width,
						c = t.barW = xt(d, 1 + 2 * i),
						p = t.pointXOffset = l.offset,
						h = -(i % 2 ? .5 : 0),
						u = i % 2 ? .5 : 1;
					e.renderer.isVML && e.inverted && (u += 1), n.pointPadding && (c = bt(c)), Ye.prototype.translate.apply(t), ge(t.points, function(n) {
						var i, o, l, g = w(n.yBottom, r),
							m = yt(xt(-999 - g, n.plotY), a.len + 999 + g),
							f = n.plotX + p,
							_ = c,
							v = yt(m, g),
							b = xt(m, g) - v;
						kt(b) < s && s && (b = s, v = _t(kt(v - r) > s ? g - s : r - (a.translate(n.y, 0, 1, 0, 1) <= r ? s : 0))), n.barX = f, n.pointWidth = d, n.tooltipPos = e.inverted ? [a.len - m, t.xAxis.len - f - _ / 2] : [f + _ / 2, m + a.pos - e.plotTop], i = _t(f + _) + h, f = _t(f) + h, _ = i - f, l = kt(v) < .5, o = _t(v + b) + u, v = _t(v) + u, b = o - v, l && (v -= 1, b += 1), n.shapeType = "rect", n.shapeArgs = {
							x: f,
							y: v,
							width: _,
							height: b
						}
					})
				},
				getSymbol: Wt,
				drawLegendSymbol: Xe.drawRectangle,
				drawGraph: Wt,
				drawPoints: function() {
					var t, e, n = this,
						i = this.chart,
						a = n.options,
						r = i.renderer,
						s = a.animationLimit || 250;
					ge(n.points, function(l) {
						var d, c = l.plotY,
							p = l.graphic;
						c === H || isNaN(c) || null === l.y ? p && (l.graphic = p.destroy()) : (t = l.shapeArgs, d = g(n.borderWidth) ? {
							"stroke-width": n.borderWidth
						} : {}, e = l.pointAttr[l.selected ? oe : ie] || n.pointAttr[ie], p ? (ke(p), p.attr(d)[i.pointCount < s ? "animate" : "attr"](o(t))) : l.graphic = p = r[l.shapeType](t).attr(e).attr(d).add(n.group).shadow(a.shadow, null, a.stacking && !a.borderRadius))
					})
				},
				animate: function(t) {
					var e, n = this,
						i = this.yAxis,
						a = n.options,
						o = this.chart.inverted,
						r = {};
					Dt && (t ? (r.scaleY = .001, e = yt(i.pos + i.len, xt(i.pos, i.toPixels(a.threshold))), o ? r.translateX = e - i.len : r.translateY = e, n.group.attr(r)) : (r.scaleY = 1, r[o ? "translateX" : "translateY"] = i.pos, n.group.animate(r, n.options.animation), n.animate = null))
				},
				remove: function() {
					var t = this,
						e = t.chart;
					e.hasRendered && ge(e.series, function(e) {
						e.type === t.type && (e.isDirty = !0)
					}), Ye.prototype.remove.apply(t, arguments)
				}
			});
			se.column = tn, Ce.bar = o(Ce.column);
			var en = b(tn, {
				type: "bar",
				inverted: !0
			});
			se.bar = en, Ce.scatter = o(Te, {
				lineWidth: 0,
				tooltip: {
					headerFormat: '<span style="color:{series.color}">●</span> <span style="font-size: 10px;"> {series.name}</span><br/>',
					pointFormat: "x: <b>{point.x}</b><br/>y: <b>{point.y}</b><br/>"
				},
				stickyTracking: !1
			});
			var nn = b(Ye, {
				type: "scatter",
				sorted: !1,
				requireSorting: !1,
				noSharedTooltip: !0,
				trackerGroups: ["markerGroup", "dataLabelsGroup"],
				takeOrdinalPosition: !1,
				singularTooltips: !0,
				drawGraph: function() {
					this.options.lineWidth && Ye.prototype.drawGraph.call(this)
				}
			});
			se.scatter = nn, Ce.pie = o(Te, {
				borderColor: "#FFFFFF",
				borderWidth: 1,
				center: [null, null],
				clip: !1,
				colorByPoint: !0,
				dataLabels: {
					distance: 30,
					enabled: !0,
					formatter: function() {
						return this.point.name
					}
				},
				ignoreHiddenPoint: !0,
				legendType: "point",
				marker: null,
				size: null,
				showInLegend: !1,
				slicedOffset: 10,
				states: {
					hover: {
						brightness: .1,
						shadow: !1
					}
				},
				stickyTracking: !1,
				tooltip: {
					followPointer: !0
				}
			});
			var an = b(Ge, {
					init: function() {
						Ge.prototype.init.apply(this, arguments);
						var t, e = this;
						return e.y < 0 && (e.y = null), a(e, {
							visible: e.visible !== !1,
							name: w(e.name, "Slice")
						}), t = function(t) {
							e.slice("select" === t.type)
						}, _e(e, "select", t), _e(e, "unselect", t), e
					},
					setVisible: function(t) {
						var e = this,
							n = e.series,
							i = n.chart;
						e.visible = e.options.visible = t = t === H ? !e.visible : t, n.options.data[ue(e, n.data)] = e.options, ge(["graphic", "dataLabel", "connector", "shadowGroup"], function(n) {
							e[n] && e[n][t ? "show" : "hide"](!0)
						}), e.legendItem && i.legend.colorizeItem(e, t), !n.isDirty && n.options.ignoreHiddenPoint && (n.isDirty = !0, i.redraw())
					},
					slice: function(t, e, n) {
						var i, a = this,
							o = a.series,
							r = o.chart;
						O(n, r), e = w(e, !0), a.sliced = a.options.sliced = t = g(t) ? t : !a.sliced, o.options.data[ue(a, o.data)] = a.options, i = t ? a.slicedTranslation : {
							translateX: 0,
							translateY: 0
						}, a.graphic.animate(i), a.shadowGroup && a.shadowGroup.animate(i)
					},
					haloPath: function(t) {
						var e = this.shapeArgs,
							n = this.series.chart;
						return this.sliced || !this.visible ? [] : this.series.chart.renderer.symbols.arc(n.plotLeft + e.x, n.plotTop + e.y, e.r + t, e.r + t, {
							innerR: this.shapeArgs.r,
							start: e.start,
							end: e.end
						})
					}
				}),
				on = {
					type: "pie",
					isCartesian: !1,
					pointClass: an,
					requireSorting: !1,
					noSharedTooltip: !0,
					trackerGroups: ["group", "dataLabelsGroup"],
					axisTypes: [],
					pointAttrToOptions: {
						stroke: "borderColor",
						"stroke-width": "borderWidth",
						fill: "color"
					},
					singularTooltips: !0,
					getColor: Wt,
					animate: function(t) {
						var e = this,
							n = e.points,
							i = e.startAngleRad;
						t || (ge(n, function(t) {
							var n = t.graphic,
								a = t.shapeArgs;
							n && (n.attr({
								r: e.center[3] / 2,
								start: i,
								end: i
							}), n.animate({
								r: a.r,
								start: a.start,
								end: a.end
							}, e.options.animation))
						}), e.animate = null)
					},
					setData: function(t, e, n, i) {
						Ye.prototype.setData.call(this, t, !1, n, i), this.processData(), this.generatePoints(), w(e, !0) && this.chart.redraw(n)
					},
					generatePoints: function() {
						var t, e, n, i, a = 0,
							o = this.options.ignoreHiddenPoint;
						for (Ye.prototype.generatePoints.call(this), e = this.points, n = e.length, t = 0; n > t; t++) i = e[t], a += o && !i.visible ? 0 : i.y;
						for (this.total = a, t = 0; n > t; t++) i = e[t], i.percentage = a > 0 ? i.y / a * 100 : 0, i.total = a
					},
					translate: function(t) {
						this.generatePoints();
						var e, n, i, a, o, r, s, l = this,
							d = 0,
							c = 1e3,
							p = l.options,
							h = p.slicedOffset,
							u = h + p.borderWidth,
							g = p.startAngle || 0,
							m = l.startAngleRad = Tt / 180 * (g - 90),
							f = l.endAngleRad = Tt / 180 * (w(p.endAngle, g + 360) - 90),
							_ = f - m,
							v = l.points,
							b = p.dataLabels.distance,
							x = p.ignoreHiddenPoint,
							y = v.length;
						for (t || (l.center = t = l.getCenter()), l.getX = function(e, n) {
							return i = wt.asin(yt((e - t[1]) / (t[2] / 2 + b), 1)), t[0] + (n ? -1 : 1) * zt(i) * (t[2] / 2 + b)
						}, r = 0; y > r; r++) s = v[r], e = m + d * _, (!x || s.visible) && (d += s.percentage / 100), n = m + d * _, s.shapeType = "arc", s.shapeArgs = {
							x: t[0],
							y: t[1],
							r: t[2] / 2,
							innerR: t[3] / 2,
							start: _t(e * c) / c,
							end: _t(n * c) / c
						}, i = (n + e) / 2, i > 1.5 * Tt ? i -= 2 * Tt : -Tt / 2 > i && (i += 2 * Tt), s.slicedTranslation = {
							translateX: _t(zt(i) * h),
							translateY: _t(Ct(i) * h)
						}, a = zt(i) * t[2] / 2, o = Ct(i) * t[2] / 2, s.tooltipPos = [t[0] + .7 * a, t[1] + .7 * o], s.half = -Tt / 2 > i || i > Tt / 2 ? 1 : 0, s.angle = i, u = yt(u, b / 2), s.labelPos = [t[0] + a + zt(i) * b, t[1] + o + Ct(i) * b, t[0] + a + zt(i) * u, t[1] + o + Ct(i) * u, t[0] + a, t[1] + o, 0 > b ? "center" : s.half ? "right" : "left", i]
					},
					drawGraph: null,
					drawPoints: function() {
						var t, e, n, i, o = this,
							r = o.chart,
							s = r.renderer,
							l = o.options.shadow;
						l && !o.shadowGroup && (o.shadowGroup = s.g("shadow").add(o.group)), ge(o.points, function(r) {
							e = r.graphic, i = r.shapeArgs, n = r.shadowGroup, l && !n && (n = r.shadowGroup = s.g("shadow").add(o.shadowGroup)), t = r.sliced ? r.slicedTranslation : {
								translateX: 0,
								translateY: 0
							}, n && n.attr(t), e ? e.animate(a(i, t)) : r.graphic = e = s[r.shapeType](i).setRadialReference(o.center).attr(r.pointAttr[r.selected ? oe : ie]).attr({
								"stroke-linejoin": "round"
							}).attr(t).add(o.group).shadow(l, n), void 0 !== r.visible && r.setVisible(r.visible)
						})
					},
					sortByAngle: function(t, e) {
						t.sort(function(t, n) {
							return void 0 !== t.angle && (n.angle - t.angle) * e
						})
					},
					drawLegendSymbol: Xe.drawRectangle,
					getCenter: Ue.getCenter,
					getSymbol: Wt
				};
			on = b(Ye, on), se.pie = on, Ye.prototype.drawDataLabels = function() {
				var t, e, n, i, r = this,
					s = r.options,
					l = s.cursor,
					d = s.dataLabels,
					c = r.points,
					p = r.hasRendered || 0;
				(d.enabled || r._hasPointLabels) && (r.dlProcessOptions && r.dlProcessOptions(d), i = r.plotGroup("dataLabelsGroup", "data-labels", d.defer ? Vt : Zt, d.zIndex || 6), w(d.defer, !0) && (i.attr({
					opacity: +p
				}), p || _e(r, "afterAnimate", function() {
					r.visible && i.show(), i[s.animation ? "animate" : "attr"]({
						opacity: 1
					}, {
						duration: 200
					})
				})), e = d, ge(c, function(s) {
					var c, p, h, u, m, f = s.dataLabel,
						_ = s.connector,
						v = !0;
					if (t = s.options && s.options.dataLabels, c = w(t && t.enabled, e.enabled), f && !c) s.dataLabel = f.destroy();
					else if (c) {
						if (d = o(e, t), m = d.rotation, p = s.getLabelConfig(), n = d.format ? C(d.format, p) : d.formatter.call(p, d), d.style.color = w(d.color, d.style.color, r.color, "black"), f) g(n) ? (f.attr({
							text: n
						}), v = !1) : (s.dataLabel = f = f.destroy(), _ && (s.connector = _.destroy()));
						else if (g(n)) {
							h = {
								fill: d.backgroundColor,
								stroke: d.borderColor,
								"stroke-width": d.borderWidth,
								r: d.borderRadius || 0,
								rotation: m,
								padding: d.padding,
								zIndex: 1
							};
							for (u in h) h[u] === H && delete h[u];
							f = s.dataLabel = r.chart.renderer[m ? "text" : "label"](n, 0, -999, null, null, null, d.useHTML).attr(h).css(a(d.style, l && {
								cursor: l
							})).add(i).shadow(d.shadow)
						}
						f && r.alignDataLabel(s, f, d, null, v)
					}
				}))
			}, Ye.prototype.alignDataLabel = function(t, e, n, i, o) {
				var r, s = this.chart,
					l = s.inverted,
					d = w(t.plotX, -999),
					c = w(t.plotY, -999),
					p = e.getBBox(),
					h = this.visible && (t.series.forceDL || s.isInsidePlot(d, _t(c), l) || i && s.isInsidePlot(d, l ? i.x + 1 : i.y + i.height - 1, l));
				h && (i = a({
					x: l ? s.plotWidth - c : d,
					y: _t(l ? s.plotHeight - d : c),
					width: 0,
					height: 0
				}, i), a(n, {
					width: p.width,
					height: p.height
				}), n.rotation ? e[o ? "attr" : "animate"]({
					x: i.x + n.x + i.width / 2,
					y: i.y + n.y + i.height / 2
				}).attr({
					align: n.align
				}) : (e.align(n, null, i), r = e.alignAttr, "justify" === w(n.overflow, "justify") ? this.justifyDataLabel(e, n, r, p, i, o) : w(n.crop, !0) && (h = s.isInsidePlot(r.x, r.y) && s.isInsidePlot(r.x + p.width, r.y + p.height)))), h || (e.attr({
					y: -999
				}), e.placed = !1)
			}, Ye.prototype.justifyDataLabel = function(t, e, n, i, a, o) {
				var r, s, l = this.chart,
					d = e.align,
					c = e.verticalAlign;
				r = n.x, 0 > r && ("right" === d ? e.align = "left" : e.x = -r, s = !0), r = n.x + i.width, r > l.plotWidth && ("left" === d ? e.align = "right" : e.x = l.plotWidth - r, s = !0), r = n.y, 0 > r && ("bottom" === c ? e.verticalAlign = "top" : e.y = -r, s = !0), r = n.y + i.height, r > l.plotHeight && ("top" === c ? e.verticalAlign = "bottom" : e.y = l.plotHeight - r, s = !0), s && (t.placed = !o, t.align(e, null, a))
			}, se.pie && (se.pie.prototype.drawDataLabels = function() {
				var t, e, n, i, a, o, r, s, l, d, c, p, h, u = this,
					g = u.data,
					m = u.chart,
					f = u.options.dataLabels,
					_ = w(f.connectorPadding, 10),
					v = w(f.connectorWidth, 1),
					b = m.plotWidth,
					x = m.plotHeight,
					y = w(f.softConnector, !0),
					k = f.distance,
					z = u.center,
					C = z[2] / 2,
					T = z[1],
					S = k > 0,
					j = [
						[],
						[]
					],
					I = [0, 0, 0, 0],
					A = function(t, e) {
						return e.y - t.y
					};
				if (u.visible && (f.enabled || u._hasPointLabels)) {
					for (Ye.prototype.drawDataLabels.apply(u), ge(g, function(t) {
						t.dataLabel && t.visible && j[t.half].push(t)
					}), p = 2; p--;) {
						var E, L, O, N, D = [],
							M = [],
							q = j[p],
							B = q.length;
						if (B) {
							for (u.sortByAngle(q, p - .5), h = r = 0; !r && q[h];) r = q[h] && q[h].dataLabel && (q[h].dataLabel.getBBox().height || 21), h++;
							if (k > 0) {
								for (O = yt(T + C + k, m.plotHeight), L = xt(0, T - C - k); O >= L; L += r) D.push(L);
								if (E = D.length, B > E) {
									for (c = [].concat(q), c.sort(A), h = B; h--;) c[h].rank = h;
									for (h = B; h--;) q[h].rank >= E && q.splice(h, 1);
									B = q.length
								}
								for (h = 0; B > h; h++) {
									t = q[h], o = t.labelPos;
									var R, W, F = 9999;
									for (W = 0; E > W; W++) R = kt(D[W] - o[1]), F > R && (F = R, N = W);
									if (h > N && null !== D[h]) N = h;
									else if (B - h + N > E && null !== D[h])
										for (N = E - B + h; null === D[N];) N++;
									else
										for (; null === D[N];) N++;
									M.push({
										i: N,
										y: D[N]
									}), D[N] = null
								}
								M.sort(A)
							}
							for (h = 0; B > h; h++) {
								var H, $;
								t = q[h], o = t.labelPos, i = t.dataLabel, d = t.visible === !1 ? Vt : Zt, $ = o[1], k > 0 ? (H = M.pop(), N = H.i, l = H.y, ($ > l && null !== D[N + 1] || l > $ && null !== D[N - 1]) && (l = yt(xt(0, $), m.plotHeight))) : l = $, s = f.justify ? z[0] + (p ? -1 : 1) * (C + k) : u.getX(l === T - C - k || l === T + C + k ? $ : l, p), i._attr = {
									visibility: d,
									align: o[6]
								}, i._pos = {
									x: s + f.x + ({
										left: _,
										right: -_
									}[o[6]] || 0),
									y: l + f.y - 10
								}, i.connX = s, i.connY = l, null === this.options.size && (a = i.width, _ > s - a ? I[3] = xt(_t(a - s + _), I[3]) : s + a > b - _ && (I[1] = xt(_t(s + a - b + _), I[1])), 0 > l - r / 2 ? I[0] = xt(_t(-l + r / 2), I[0]) : l + r / 2 > x && (I[2] = xt(_t(l + r / 2 - x), I[2])))
							}
						}
					}(0 === P(I) || this.verifyDataLabelOverflow(I)) && (this.placeDataLabels(), S && v && ge(this.points, function(t) {
						e = t.connector, o = t.labelPos, i = t.dataLabel, i && i._pos ? (d = i._attr.visibility, s = i.connX, l = i.connY, n = y ? [te, s + ("left" === o[6] ? 5 : -5), l, "C", s, l, 2 * o[2] - o[4], 2 * o[3] - o[5], o[2], o[3], ee, o[4], o[5]] : [te, s + ("left" === o[6] ? 5 : -5), l, ee, o[2], o[3], ee, o[4], o[5]], e ? (e.animate({
							d: n
						}), e.attr("visibility", d)) : t.connector = e = u.chart.renderer.path(n).attr({
							"stroke-width": v,
							stroke: f.connectorColor || t.color || "#606060",
							visibility: d
						}).add(u.dataLabelsGroup)) : e && (t.connector = e.destroy())
					}))
				}
			}, se.pie.prototype.placeDataLabels = function() {
				ge(this.points, function(t) {
					var e, n = t.dataLabel;
					n && (e = n._pos, e ? (n.attr(n._attr), n[n.moved ? "animate" : "attr"](e), n.moved = !0) : n && n.attr({
						y: -999
					}))
				})
			}, se.pie.prototype.alignDataLabel = Wt, se.pie.prototype.verifyDataLabelOverflow = function(t) {
				var e, n = this.center,
					i = this.options,
					a = i.center,
					o = i.minSize || 80,
					r = o;
				return null !== a[0] ? r = xt(n[2] - xt(t[1], t[3]), o) : (r = xt(n[2] - t[1] - t[3], o), n[0] += (t[3] - t[1]) / 2), null !== a[1] ? r = xt(yt(r, n[2] - xt(t[0], t[2])), o) : (r = xt(yt(r, n[2] - t[0] - t[2]), o), n[1] += (t[0] - t[2]) / 2), r < n[2] ? (n[2] = r, this.translate(n), ge(this.points, function(t) {
					t.dataLabel && (t.dataLabel._pos = null)
				}), this.drawDataLabels && this.drawDataLabels()) : e = !0, e
			}), se.column && (se.column.prototype.alignDataLabel = function(t, e, n, i, a) {
				var r = this.chart,
					s = r.inverted,
					l = t.dlBox || t.shapeArgs,
					d = t.below || t.plotY > w(this.translatedThreshold, r.plotSizeY),
					c = w(n.inside, !!this.options.stacking);
				l && (i = o(l), s && (i = {
					x: r.plotWidth - i.y - i.height,
					y: r.plotHeight - i.x - i.width,
					width: i.height,
					height: i.width
				}), c || (s ? (i.x += d ? 0 : i.width, i.width = 0) : (i.y += d ? i.height : 0, i.height = 0))), n.align = w(n.align, !s || c ? "center" : d ? "right" : "left"), n.verticalAlign = w(n.verticalAlign, s || c ? "middle" : d ? "top" : "bottom"), Ye.prototype.alignDataLabel.call(this, t, e, n, i, a)
			});
			var rn = le.TrackerMixin = {
				drawTrackerPoint: function() {
					var t = this,
						e = t.chart,
						n = e.pointer,
						i = t.options.cursor,
						a = i && {
							cursor: i
						},
						o = function(n) {
							var i, a = n.target;
							for (e.hoverSeries !== t && t.onMouseOver(); a && !i;) i = a.point, a = a.parentNode;
							i !== H && i !== e.hoverPoint && i.onMouseOver(n)
						};
					ge(t.points, function(t) {
						t.graphic && (t.graphic.element.point = t), t.dataLabel && (t.dataLabel.element.point = t)
					}), t._hasTracking || (ge(t.trackerGroups, function(e) {
						t[e] && (t[e].addClass(Jt + "tracker").on("mouseover", o).on("mouseout", function(t) {
							n.onTrackerMouseOut(t)
						}).css(a), X && t[e].on("touchstart", o))
					}), t._hasTracking = !0)
				},
				drawTrackerGraph: function() {
					var t, e, n = this,
						i = n.options,
						a = i.trackByArea,
						o = [].concat(a ? n.areaPath : n.graphPath),
						r = o.length,
						s = n.chart,
						l = s.pointer,
						d = s.renderer,
						c = s.options.tooltip.snap,
						p = n.tracker,
						h = i.cursor,
						u = h && {
							cursor: h
						},
						g = n.singlePoints,
						m = function() {
							s.hoverSeries !== n && n.onMouseOver()
						},
						f = "rgba(192,192,192," + (Dt ? 1e-4 : .002) + ")";
					if (r && !a)
						for (e = r + 1; e--;) o[e] === te && o.splice(e + 1, 0, o[e + 1] - c, o[e + 2], ee), (e && o[e] === te || e === r) && o.splice(e, 0, ee, o[e - 2] + c, o[e - 1]);
					for (e = 0; e < g.length; e++) t = g[e], o.push(te, t.plotX - c, t.plotY, ee, t.plotX + c, t.plotY);
					p ? p.attr({
						d: o
					}) : (n.tracker = d.path(o).attr({
						"stroke-linejoin": "round",
						visibility: n.visible ? Zt : Vt,
						stroke: f,
						fill: a ? f : Qt,
						"stroke-width": i.lineWidth + (a ? 0 : 2 * c),
						zIndex: 2
					}).add(n.group), ge([n.tracker, n.markerGroup], function(t) {
						t.addClass(Jt + "tracker").on("mouseover", m).on("mouseout", function(t) {
							l.onTrackerMouseOut(t)
						}).css(u), X && t.on("touchstart", m)
					}))
				}
			};
			se.column && (tn.prototype.drawTracker = rn.drawTrackerPoint), se.pie && (se.pie.prototype.drawTracker = rn.drawTrackerPoint), se.scatter && (nn.prototype.drawTracker = rn.drawTrackerPoint), a($e.prototype, {
				setItemEvents: function(t, e, n, i, a) {
					var o = this;
					(n ? e : t.legendGroup).on("mouseover", function() {
						t.setState(ae), e.css(o.options.itemHoverStyle)
					}).on("mouseout", function() {
						e.css(t.visible ? i : a), t.setState()
					}).on("click", function(e) {
						var n = "legendItemClick",
							i = function() {
								t.setVisible()
							};
						e = {
							browserEvent: e
						}, t.firePointEvent ? t.firePointEvent(n, e, i) : be(t, n, e, i)
					})
				},
				createCheckboxForItem: function(t) {
					var e = this;
					t.checkbox = v("input", {
						type: "checkbox",
						checked: t.selected,
						defaultChecked: t.selected
					}, e.options.itemCheckboxStyle, e.chart.container), _e(t.checkbox, "click", function(e) {
						var n = e.target;
						be(t, "checkboxClick", {
							checked: n.checked
						}, function() {
							t.select()
						})
					})
				}
			}), G.legend.itemStyle.cursor = "pointer", a(W.prototype, {
				showResetZoom: function() {
					var t = this,
						e = G.lang,
						n = t.options.chart.resetZoomButton,
						i = n.theme,
						a = i.states,
						o = "chart" === n.relativeTo ? null : "plotBox";
					this.resetZoomButton = t.renderer.button(e.resetZoom, null, null, function() {
						t.zoomOut()
					}, i, a && a.hover).attr({
						align: n.position.align,
						title: e.resetZoomTitle
					}).add().align(n.position, !1, o)
				},
				zoomOut: function() {
					var t = this;
					be(t, "selection", {
						resetSelection: !0
					}, function() {
						t.zoom()
					})
				},
				zoom: function(t) {
					var e, n, i = this,
						a = i.pointer,
						o = !1;
					!t || t.resetSelection ? ge(i.axes, function(t) {
						e = t.zoom()
					}) : ge(t.xAxis.concat(t.yAxis), function(t) {
						var n = t.axis,
							i = n.isXAxis;
						(a[i ? "zoomX" : "zoomY"] || a[i ? "pinchX" : "pinchY"]) && (e = n.zoom(t.min, t.max), n.displayBtn && (o = !0))
					}), n = i.resetZoomButton, o && !n ? i.showResetZoom() : !o && l(n) && (i.resetZoomButton = n.destroy()), e && i.redraw(w(i.options.chart.animation, t && t.animation, i.pointCount < 100))
				},
				pan: function(t, e) {
					var n, i = this,
						a = i.hoverPoints;
					a && ge(a, function(t) {
						t.setState()
					}), ge("xy" === e ? [1, 0] : [1], function(e) {
						var a = t[e ? "chartX" : "chartY"],
							o = i[e ? "xAxis" : "yAxis"][0],
							r = i[e ? "mouseDownX" : "mouseDownY"],
							s = (o.pointRange || 0) / 2,
							l = o.getExtremes(),
							d = o.toValue(r - a, !0) + s,
							c = o.toValue(r + i[e ? "plotWidth" : "plotHeight"] - a, !0) - s;
						o.series.length && d > yt(l.dataMin, l.min) && c < xt(l.dataMax, l.max) && (o.setExtremes(d, c, !1, !1, {
							trigger: "pan"
						}), n = !0), i[e ? "mouseDownX" : "mouseDownY"] = a
					}), n && i.redraw(!1), _(i.container, {
						cursor: "move"
					})
				}
			}), a(Ge.prototype, {
				select: function(t, e) {
					var n = this,
						i = n.series,
						a = i.chart;
					t = w(t, !n.selected), n.firePointEvent(t ? "select" : "unselect", {
						accumulate: e
					}, function() {
						n.selected = n.options.selected = t, i.options.data[ue(n, i.data)] = n.options, n.setState(t && oe), e || ge(a.getSelectedPoints(), function(t) {
							t.selected && t !== n && (t.selected = t.options.selected = !1, i.options.data[ue(t, i.data)] = t.options, t.setState(ie), t.firePointEvent("unselect"))
						})
					})
				},
				onMouseOver: function(t) {
					var e = this,
						n = e.series,
						i = n.chart,
						a = i.tooltip,
						o = i.hoverPoint;
					o && o !== e && o.onMouseOut(), e.firePointEvent("mouseOver"), !a || a.shared && !n.noSharedTooltip || a.refresh(e, t), e.setState(ae), i.hoverPoint = e
				},
				onMouseOut: function() {
					var t = this.series.chart,
						e = t.hoverPoints;
					this.firePointEvent("mouseOut"), e && -1 !== ue(this, e) || (this.setState(), t.hoverPoint = null)
				},
				importEvents: function() {
					if (!this.hasImportedEvents) {
						var t, e = this,
							n = o(e.series.options.point, e.options),
							i = n.events;
						e.events = i;
						for (t in i) _e(e, t, i[t]);
						this.hasImportedEvents = !0
					}
				},
				setState: function(t, e) {
					var n, i, r, s, l = this,
						d = l.plotX,
						c = l.plotY,
						p = l.series,
						h = p.options.states,
						u = Ce[p.type].marker && p.options.marker,
						g = u && !u.enabled,
						m = u && u.states[t],
						f = m && m.enabled === !1,
						w = p.stateMarkerGraphic,
						_ = l.marker || {},
						v = p.chart,
						b = p.halo;
					t = t || ie, s = l.pointAttr[t] || p.pointAttr[t], t === l.state && !e || l.selected && t !== oe || h[t] && h[t].enabled === !1 || t && (f || g && m.enabled === !1) || t && _.states && _.states[t] && _.states[t].enabled === !1 || (l.graphic ? (n = u && l.graphic.symbolName && s.r, l.graphic.attr(o(s, n ? {
						x: d - n,
						y: c - n,
						width: 2 * n,
						height: 2 * n
					} : {})), w && w.hide()) : (t && m && (n = m.radius, r = _.symbol || p.symbol, w && w.currentSymbol !== r && (w = w.destroy()), w ? w[e ? "animate" : "attr"]({
						x: d - n,
						y: c - n
					}) : r && (p.stateMarkerGraphic = w = v.renderer.symbol(r, d - n, c - n, 2 * n, 2 * n).attr(s).add(p.markerGroup), w.currentSymbol = r)), w && w[t && v.isInsidePlot(d, c, v.inverted) ? "show" : "hide"]()), i = h[t] && h[t].halo, i && i.size ? (b || (p.halo = b = v.renderer.path().add(p.seriesGroup)), b.attr(a({
						fill: Pe(l.color || p.color).setOpacity(i.opacity).get()
					}, i.attributes))[e ? "animate" : "attr"]({
						d: l.haloPath(i.size)
					})) : b && b.attr({
						d: []
					}), l.state = t)
				},
				haloPath: function(t) {
					var e = this.series,
						n = e.chart,
						i = e.getPlotBox(),
						a = n.inverted;
					return n.renderer.symbols.circle(i.translateX + (a ? e.yAxis.len - this.plotY : this.plotX) - t, i.translateY + (a ? e.xAxis.len - this.plotX : this.plotY) - t, 2 * t, 2 * t)
				}
			}), a(Ye.prototype, {
				onMouseOver: function() {
					var t = this,
						e = t.chart,
						n = e.hoverSeries;
					n && n !== t && n.onMouseOut(), t.options.events.mouseOver && be(t, "mouseOver"), t.setState(ae), e.hoverSeries = t
				},
				onMouseOut: function() {
					var t = this,
						e = t.options,
						n = t.chart,
						i = n.tooltip,
						a = n.hoverPoint;
					a && a.onMouseOut(), t && e.events.mouseOut && be(t, "mouseOut"), !i || e.stickyTracking || i.shared && !t.noSharedTooltip || i.hide(), t.setState(), n.hoverSeries = null
				},
				setState: function(t) {
					var e, n = this,
						i = n.options,
						a = n.graph,
						o = n.graphNeg,
						r = i.states,
						s = i.lineWidth;
					if (t = t || ie, n.state !== t) {
						if (n.state = t, r[t] && r[t].enabled === !1) return;
						t && (s = r[t].lineWidth || s + (r[t].lineWidthPlus || 0)), a && !a.dashstyle && (e = {
							"stroke-width": s
						}, a.attr(e), o && o.attr(e))
					}
				},
				setVisible: function(t, e) {
					var n, i = this,
						a = i.chart,
						o = i.legendItem,
						r = a.options.chart.ignoreHiddenSeries,
						s = i.visible;
					i.visible = t = i.userOptions.visible = t === H ? !s : t, n = t ? "show" : "hide", ge(["group", "dataLabelsGroup", "markerGroup", "tracker"], function(t) {
						i[t] && i[t][n]()
					}), a.hoverSeries === i && i.onMouseOut(), o && a.legend.colorizeItem(i, t), i.isDirty = !0, i.options.stacking && ge(a.series, function(t) {
						t.options.stacking && t.visible && (t.isDirty = !0)
					}), ge(i.linkedSeries, function(e) {
						e.setVisible(t, !1)
					}), r && (a.isDirtyBox = !0), e !== !1 && a.redraw(), be(i, n)
				},
				setTooltipPoints: function(t) {
					var e, n, i, a, o, r, s, l = this,
						d = [],
						c = l.xAxis,
						p = c && c.getExtremes(),
						h = c ? c.tooltipLen || c.len : l.chart.plotSizeX,
						u = [];
					if (l.options.enableMouseTracking !== !1 && !l.singularTooltips) {
						for (t && (l.tooltipPoints = null), ge(l.segments || l.points, function(t) {
							d = d.concat(t)
						}), c && c.reversed && (d = d.reverse()), l.orderTooltipPoints && l.orderTooltipPoints(d), e = d.length, s = 0; e > s; s++)
							if (a = d[s], o = a.x, o >= p.min && o <= p.max)
								for (r = d[s + 1], n = i === H ? 0 : i + 1, i = d[s + 1] ? yt(xt(0, vt((a.clientX + (r ? r.wrappedClientX || r.clientX : h)) / 2)), h) : h; n >= 0 && i >= n;) u[n++] = a;
						l.tooltipPoints = u
					}
				},
				show: function() {
					this.setVisible(!0)
				},
				hide: function() {
					this.setVisible(!1)
				},
				select: function(t) {
					var e = this;
					e.selected = t = t === H ? !e.selected : t, e.checkbox && (e.checkbox.checked = t), be(e, t ? "select" : "unselect")
				},
				drawTracker: rn.drawTrackerGraph
			}), a(le, {
				Axis: R,
				Chart: W,
				Color: Pe,
				Point: Ge,
				Tick: B,
				Renderer: $,
				Series: Ye,
				SVGElement: q,
				SVGRenderer: Ae,
				arrayMin: I,
				arrayMax: P,
				charts: Ft,
				dateFormat: Y,
				format: C,
				pathAnim: J,
				getOptions: M,
				hasBidiBug: Mt,
				isTouchDevice: Ot,
				numberFormat: x,
				seriesTypes: se,
				setOptions: D,
				addEvent: _e,
				removeEvent: ve,
				createElement: v,
				discardElement: E,
				css: _,
				each: ge,
				extend: a,
				map: we,
				merge: o,
				pick: w,
				splat: f,
				extendClass: b,
				pInt: r,
				wrap: k,
				svg: Dt,
				canvas: qt,
				vml: !Dt && !qt,
				product: $t,
				version: Xt
			})
		}()
	},
	function(t, e, n) {
		var i;
		(function(a) {
			"use strict";
			i = function() {
				function t() {
					var t = ["njck", "hiwifi", "router"];
					return t.indexOf(a.from_device) > -1 ? !0 : !1
				}

				function e() {
					var t;
					s(".gwd_update").on("mouseenter", function() {
						s(".gwd_update_wish_detail").show(), s(".gwd_update").addClass("update_hover_item")
					}).on("mouseleave", function() {
						t = setTimeout(function() {
							s(".gwd_update_wish_detail").hide(), s(".gwd_update").removeClass("update_hover_item")
						}, 200)
					}), s(".gwd_update_wish_detail").on("mouseenter", function() {
						clearTimeout(t)
					}).on("mouseleave", function() {
						s(".gwd_update_wish_detail").hide(), s(".gwd_update").removeClass("update_hover_item")
					})
				}

				function i() {
					var t;
					a.IE6 && (s(".gwd_update_shengji").on("mouseenter", function() {
						s(".gwd_update_detail").show()
					}).on("mouseleave", function() {
						t = setTimeout(function() {
							s(".gwd_update_detail").hide()
						}, 200)
					}), s(".gwd_update_detail").on("mouseenter", function() {
						clearTimeout(t)
					}).on(function() {
						s(".gwd_update_detail").hide()
					}))
				}
				var o, r = {},
					s = n(12),
					l = n(13),
					d = n(71),
					c = n(72),
					p = c.getBrowser();
				return r.isBeijing = function(t) {
					void 0 === o && a.forbitNj ? s.getJSON(a.server + "/ip.php?callback=?&location=" + encodeURIComponent("南京")).done(function(e) {
						o = e.result, t(o)
					}) : t(o)
				}, r.mainbar = function() {
					r.isBeijing(function(e) {
						if (!e && t()) {
							s("a.re-gwd-desc.gwd-desc").hide();
							var a = n(73);
							s(".gwd-re-change-logo").after(l.compile(a)({
								browser: p
							})), s("div.gwd_update_shengji .shengji_content").click(function(t) {
								t.stopPropagation()
							}), s("#new_download_new_button_bottom").css("backgroundPosition", p.background).click(function(t) {
								t.stopPropagation()
							}), "chrome" === p.utype ? s("#new_download_new_txt_bottom").text("360用户请点此下载").attr("href", "https://ext.se.360.cn/webstore/detail/nfbikdkjfjcejddbdcpbafnclkfdhijd").css("color", "gray") : ("360se" === p.utype || "360ee" === p.utype) && s("#new_download_new_txt_bottom").text("chrome用户请点此下载").attr("href", "http://blog.gwdang.com/?p=174").css({
								color: "gray",
								right: "24px"
							}), i()
						}
					})
				}, r.minibar = function() {
					r.isBeijing(function(n) {
						!n && t() && (a.IE6 || (s("#gwd-brand-subscribe-box").after(l.compile(d)({
							browser: p
						})), s("a.gwd_update").click(function(t) {
							t.stopPropagation()
						}), s("#new_download_new_button").css("backgroundPosition", p.background).click(function(t) {
							t.stopPropagation()
						}), "chrome" === p.utype ? s("#new_download_new_txt").text("360用户请点此下载").attr("href", "https://ext.se.360.cn/webstore/detail/nfbikdkjfjcejddbdcpbafnclkfdhijd").css("color", "gray") : ("360se" === p.utype || "360ee" === p.utype) && s("#new_download_new_txt").text("chrome用户请点此下载").attr("href", "http://blog.gwdang.com/?p=174").css({
							color: "gray",
							right: "24px"
						}), e()))
					})
				}, r.trendUpdate = function() {
					r.isBeijing(function(e) {
						!e && t() && (s("#gwd-trend-chart").append('<a class="gwd_bottomtrend_update" href="' + p.url + '" target="_blank"></a>').click(function(t) {
							t.stopPropagation()
						}), s("#gwd_wishlist_trend_detail_info").append('<a class="gwd_update_trend_btn" href="' + p.url + '" target="_blank"></a>').click(function(t) {
							t.stopPropagation()
						}))
					})
				}, r
			}.call(e, n, e, t), !(void 0 !== i && (t.exports = i))
		}).call(e, n(1))
	},
	function(t, e) {
		t.exports = '<div class="shuxian">|</div>\r\n<div id="gwd_update_new_wrapper">\r\n  <a href="{{browser.url}}" class="gwd_update" target="_blank">\r\n    <div class="gwd_update_icon"><img class="gwd_update_icon_out" src="//s1.gwdang.com/images/extensions/freedowndownload.gif"></div>\r\n    <span>体验最新版本比价工具</span>\r\n  </a>\r\n  <div class="gwd_update_wish_detail">\r\n    <div class="gwd_update_detail_txt">\r\n      <!-- <p>完美支持淘宝、天猫比价</p>\r\n        <p>下载后打开文件，即可安装购物党比价插件</p>\r\n        <p>适用于IE、搜狗、360、火狐和UC浏览器</p> --> \r\n        <a id="new_download_new_button" href="{{browser.url}}" target="_blank"></a> \r\n        <a id="new_download_new_txt" href="" target="_blank"></a>\r\n    </div>\r\n    <!-- <a class="gwd_update_chrome" href="http://blog.gwdang.com/?p=174" target="_blank">chrome 用户请点击此处免费下载</a> -->\r\n    <!-- <div class="gwd_update_download">\r\n    <a href="{{browser.url}}" target="_blank">\r\n      <img src="//s1.gwdang.com/images/extensions/freedownbutton.png">\r\n    </a>\r\n    </div> -->\r\n  </div>\r\n</div>'
	},
	function(t, e, n) {
		(function(e) {
			"use strict";
			var n = {
					url: "",
					utype: ""
				},
				i = navigator.userAgent.toLowerCase();
			t.exports.getBrowser = function() {
				if ("ActiveXObject" in window) n.url = "https://www.gwdang.com/files/ext/gwdang_install_IE.exe?from=" + e.from_device, n.utype = "ie", n.utitle = "IE", n.background = "-401px -81px";
				else if (i.indexOf("firefox") > -1) n.url = "https://addons.mozilla.org/firefox/downloads/latest/405940/addon-405940-latest.xpi?src=dp-btn-primary", n.utype = "firefox", n.utitle = "火狐", n.background = "-401px -44px";
				else if (i.indexOf("opera") > -1 || i.indexOf("opr") > -1) n.url = "https://www.gwdang.com/files/ext/opera.crx", n.utype = "opera", n.utitle = "Opera", n.background = "-2px -120px";
				else if (i.indexOf("safari") > -1 && -1 == i.indexOf("chrome")) n.url = "https://www.gwdang.com/files/ext/gwdang.safariextz", n.utype = "safari", n.utitle = "Safari", n.background = "-301px -44px";
				else if (i.indexOf("chrome") > -1) {
					var t = o();
					i.indexOf("qqbrowser") > -1 ? (n.url = "https://pcbrowser.dd.qq.com/pcbrowserbig/qbextension/crx1/jgphnjokjhjlcnnajmfjlacjnjkhleah.crx", n.utype = "qq", n.utitle = "QQ", n.background = "-104px -81px") : i.indexOf("maxthon") > -1 ? (n.url = "http://extension.maxthon.cn/detail/index.php?view_id=358", n.utype = "maxthon", n.utitle = "遨游", n.background = "-401px -4px") : i.indexOf("bidubrowser") > -1 ? (n.url = "http://chajian.baidu.com/2015/#all/39/mcgoibhhihpolaiioggajoipieefgmoa", n.utype = "baidu", n.utitle = "百度", n.background = "-104px -120px") : i.indexOf("ubrowser") > -1 ? (n.url = "http://extensions.uc.cn/newindex.htm#!detail/bpdlhpjkjbdiflnankpohpfepecdjgag", n.utype = "uc", n.utitle = "UC", n.background = "-2px -44px") : i.indexOf("lbbrowser") > -1 ? (n.url = "http://store.liebao.cn/admin/extensions/201511/ea878d5a4d2a008ad78978a94eea62a1.crx", n.utype = "liebao", n.utitle = "猎豹安全", n.background = "-301px -4px") : i.indexOf("taobrowser") > -1 ? (n.url = "https://www.gwdang.com/files/ext/chrome.crx", n.utype = "taobao", n.utitle = "淘宝", n.background = "-104px -44px") : i.indexOf("2345explorer") > -1 ? (n.url = "http://extension.ie.2345.com/#nfbikdkjfjcejddbdcpbafnclkfdhijd", n.utype = "2345", n.utitle = "2345王牌", n.background = "-301px -81px") : i.indexOf("coolnovo") > -1 ? (n.url = "https://www.gwdang.com/files/ext/chrome.crx", n.utype = "fengshu", n.utitle = "枫树", n.background = "-2px -81px") : i.indexOf("greenbrowser") > -1 ? (n.url = "https://www.gwdang.com/files/ext/gwdang_for_greenbrowser.zip", n.utype = "gb", n.utitle = "GB", n.background = "-203px -81px") : "Chrome" === t ? (n.url = "http://blog.gwdang.com/?p=174", n.utype = "chrome", n.utitle = "Chrome", n.background = "-2px -4px") : "360SE" === t ? (n.url = "https://ext.se.360.cn/webstore/detail/nfbikdkjfjcejddbdcpbafnclkfdhijd", n.utype = "360se", n.utitle = "360安全", n.background = "-203px -4px") : "360EE" === t ? (n.url = "https://ext.chrome.360.cn/webstore/detail/nfbikdkjfjcejddbdcpbafnclkfdhijd", n.utype = "360ee", n.utitle = "360急速 ", n.background = "-104px -4px") : i.indexOf("se") > -1 ? (n.url = "http://ie.sogou.com/tools/tool_337.html", n.utype = "sogou", n.utitle = "搜狗", n.background = "-401px -120px") : (n.url = "https://www.gwdang.com/app/extension", n.utype = "chrome", n.utitle = "Chromium内核")
				} else n.url = "https://www.gwdang.com/app/extension", n.utype = "chrome", n.utitle = "未知浏览器";
				return n
			};
			var a = {
					result: "Chrome",
					details: {
						Chrome: 5,
						Chromium: 0,
						_360SE: 0,
						_360EE: 0
					},
					sorted: ["Chrome", "360SE", "360EE", "Chromium"],
					exec: function(t) {
						var e = {
								Chrome: 5,
								Chromium: 0,
								_360SE: 0,
								_360EE: 0
							},
							n = window.navigator.userAgent;
						if (/Chrome\/([\d.])+\sSafari\/([\d.])+$/.test(n)) {
							if ("Win32" == window.navigator.platform) {
								if (window.clientInformation.languages || (e._360SE += 8), /zh/i.test(navigator.language) && (e._360SE += 3, e._360EE += 3), window.clientInformation.languages) {
									var i = window.clientInformation.languages.length;
									i >= 3 ? (e.Chrome += 10, e.Chromium += 6) : 2 == i ? (e.Chrome += 3, e.Chromium += 6, e._360EE += 6) : 1 == i && (e.Chrome += 4, e.Chromium += 4)
								}
								for (var a in window.navigator.plugins) "np-mswmp.dll" == window.navigator.plugins[a].filename && (e._360SE += 20, e._360EE += 20);
								Object.keys(window.chrome.webstore).length <= 1 ? e._360SE += 7 : 2 == Object.keys(window.chrome.webstore).length && (e._360SE += 4, e.Chromium += 3), window.navigator.plugins.length >= 30 ? (e._360EE += 7, e._360SE += 7, e.Chrome += 7) : window.navigator.plugins.length < 30 && window.navigator.plugins.length > 10 ? (e._360EE += 3, e._360SE += 3, e.Chrome += 3) : window.navigator.plugins.length <= 10 && (e.Chromium += 6)
							} else e._360SE -= 50, e._360EE -= 50, /Linux/i.test(window.navigator.userAgent) && (e.Chromium += 5);
							var o = 0,
								r = void 0;
							for (var a in window.navigator.plugins)
								if (r = /^(.+) PDF Viewer$/.exec(window.navigator.plugins[a].name)) {
									if ("Chrome" == r[1]) {
										e.Chrome += 6, e._360SE += 6, o = 1;
										break
									}
									if ("Chromium" == r[1]) {
										e.Chromium += 10, e._360EE += 6, o = 1;
										break
									}
								}
							o || (e.Chromium += 9)
						}
						var s = new Object;
						s.Chrome = e.Chrome, s.Chromium = e.Chromium, s["360SE"] = e._360SE, s["360EE"] = e._360EE;
						var l = [];
						for (var d in s) l.push([d, s[d]]);
						return l.sort(function(t, e) {
							return e[1] - t[1]
						}), this.sorted = l, this.details = e, this.result = l[0][0], "result" == t ? l[0][0] : "details" == t ? s : "sorted" == t ? l : void 0
					}
				},
				o = function() {
					var t = window.navigator.userAgent;
					try {
						if (a.exec(), /Chrome\/([\d.])+\sSafari\/([\d.])+$/.test(t)) return a.result
					} catch (e) {
						return
					}
				}
		}).call(e, n(1))
	},
	function(t, e) {
		t.exports = '<div class="gwd_update_shengji gwd-close-module">\r\n  <div class="shengji_content">\r\n    <a href ="{{browser.url}}" target="_blank">升级</a>\r\n  </div>\r\n  <div class="gwd_update_detail">\r\n    <!-- <h1>购物党比价工具升级啦！</h1>\r\n    <div class="gwd_update_detail_txt">\r\n      <p>立即前往浏览器商城安装最新版购物党</p>\r\n      <p>比价工具，体验网购比价服务，完美支持淘</p>\r\n      <p>宝、天猫等百余商城。</p>  \r\n    </div> -->\r\n    <a id="new_download_new_button_bottom" href="{{browser.url}}" target="_blank"></a> \r\n    <a id="new_download_new_txt_bottom" href="" target="_blank"></a>\r\n    <!-- <div class="gwd_update_download">\r\n    <a href="http://blog.gwdang.com/?p=174" target="_blank">chrome 用户请点击此处免费下载</a>\r\n    <a class="gwd_update_btn" href="{{browser.url}}" target="_blank">\r\n      <img src="//s1.gwdang.com/images/freedown.png">\r\n    </a>\r\n    </div> -->\r\n  </div>\r\n</div>'
	},
	function(t, e, n) {
		var i;
		(function(a) {
			"use strict";
			i = function() {
				var t = n(12),
					e = n(16);
				return {
					modName: "gwd_productMonitor",
					url: "",
					init: function() {
						this.url = document.location.href, this.isMonitorSite() && this.url.search("search") > -1 && (this.bindEvent(), this.getkeywords())
					},
					isMonitorSite: function() {
						var t = a.site;
						for (var e in this.keywordsPatterns)
							if (t == e) return !0;
						return !1
					},
					getkeywords: function() {
						var e = a.site,
							n = this.keywordsPatterns[e],
							i = "",
							o = {
								keyword: "",
								charsets: ""
							},
							r = "",
							s = "";
						try {
							i = new RegExp("" + n + "=([^&]+)"), s = this.url.match(i)[1]
						} catch (l) {
							if (a.debug) throw l
						}
						if ("" == s) try {
							i = new RegExp("" + n + "([^(/|?)]+)"), s = this.url.match(i)[1]
						} catch (l) {
							if (a.debug) throw l
						}
						try {
							r = t("[http-equiv='Content-Type']").attr("content").match(/charset=([0-9a-zA-Z-]+)/)[1]
						} catch (l) {
							if (a.debug) throw l
						}
						if (!r) try {
							r = t("meta[charset]").attr("charset")
						} catch (l) {
							if (a.debug) throw l
						}
						return o.keyword = s, o.charsets = r, o
					},
					bindEvent: function() {
						var n = this.getkeywords(),
							i = n.keyword,
							o = n.charsets;
						t("body").delegate("img, area", "click", function() {
							var n = t(this).parent().attr("href");
							e.get(a.product_keyword + "/log?permanent_id=" + encodeURIComponent(a.p_id) + "&url=" + encodeURIComponent(n) + "&keyword=" + encodeURIComponent(i) + "&charset=" + o)
						})
					},
					keywordsPatterns: {
						"360buy": "keyword",
						taobao: "q",
						dangdang: "key",
						jumei: "search",
						gome: "question",
						yihaodian: "/c.+/k",
						suning: "com/"
					}
				}
			}.call(e, n, e, t), !(void 0 !== i && (t.exports = i))
		}).call(e, n(1))
	},
	function(t, e, n) {
		(function(e, i) {
			"use strict";

			function a() {
				var t = void 0,
					a = n(93),
					o = n(13),
					r = o.compile(a)({
						show_tip: 1 === parseInt(e.show_tip) ? "gwd_on" : "gwd_off",
						show_promo: 1 === parseInt(e.show_promo) ? "gwd_on" : "gwd_off",
						show_wishlist: 1 === parseInt(e.show_wishlist) ? "gwd_on" : "gwd_off"
					}),
					s = i(".gwd_option_setting");
				s.append(r);
				var l = s.find(".gwd_maxthon_setting_detail");
				s.attr("href", "javascript:void(0)");
				var d = function() {
						clearTimeout(t), l.show(), s.addClass("gwd_hover")
					},
					c = function() {
						t = setTimeout(function() {
							l.hide()
						}, 400), s.removeClass("gwd_hover")
					};
				s.on("mouseenter", d), s.on("mouseleave", c), l.on("mouseleave", c), l.on("mouseenter", d), s.on("click", d);
				var p = s.find(".gwd_maxthon_option_button"),
					h = function(t, n) {
						var i = t.attr("op");
						i && (void 0 === n && (n = t.hasClass("gwd_on") ? 0 : 1), x.get(e.server + "/brwext/permanent_id?version=2&op=set_" + i + "&" + i + "=" + n).done(function(e) {
							1 === n ? (t.removeClass("gwd_off"), t.addClass("gwd_on")) : (t.addClass("gwd_off"), t.removeClass("gwd_on"))
						}))
					};
				p.on("click", function(t) {
					var e = i(t.target);
					h(e)
				}), s.find(".gwd_maxthon_setting_detail_close_all").on("click", function(t) {
					p.each(function(t, e) {
						h(i(e), 0)
					})
				})
			}
			var o = n(33),
				r = n(50),
				s = n(76),
				l = n(44),
				d = n(57),
				c = n(59),
				p = n(65),
				h = n(66),
				u = n(77),
				g = n(78),
				m = n(68),
				f = n(79),
				w = n(74),
				_ = n(81),
				v = n(35),
				b = n(56),
				x = n(16),
				y = n(82),
				k = n(40),
				z = n(17),
				C = n(19);
			t.exports.init = function(t) {
				if (!e.IE6 || "ccb" != e.site) {
					e.collectInfo = t.collectInfo, e.collectInfo.price = e.collectInfo.price || e.dp.price, i("#gwdang-notifier").addClass("gwd-mini").attr("css", "bottom:-60px;display:block !important;z-index:9999999999 !important;").empty(), i("#gwdang-notifier").animate({
						bottom: "0px"
					}, 500, !1);
					var f = i("#gwdang-notifier").append(i("<a>", {
						"class": "gwd-bg gwd-logo gwd-re-change-logo",
						href: e.c_server + "",
						target: "_blank"
					}).append(i("<em>")));
					"maxthon" !== e.from_device && f.append(i("<a>", {
						"class": "gwd-close-module gwd-desc re-gwd-desc",
						href: e.c_server + "",
						target: "_blank"
					}).append(i("<em>", {
						"class": "gwd-bg gwd-bi gwd-re-change-margin"
					}))).append(i("<div>", {
						id: "gwd-quan",
						"class": "gwd-close-module gwd-desc re-gwd-desc"
					}).append(i("<a>", {
						"class": "gwd-tab",
						href: e.c_server + "/quan",
						title: "查看全网热门优惠券",
						target: "_blank"
					}).append(i("<em>", {
						"class": "gwd-bg gwd-quan gwd-re-change-margin"
					})))), f.append(i("<div>", {
						id: "gwd-cu",
						"class": "gwd-close-module gwd-desc re-gwd-desc"
					}).append(i("<a>", {
						"class": "gwd-tab",
						href: e.c_server + "/promotion/activity",
						title: "查看全网热门促销活动",
						target: "_blank"
					}).append(i("<em>", {
						"class": "gwd-bg gwd-cu gwd-re-change-margin"
					})))), n(70).mainbar(), e.IE6 && b.bindBgiframe();
					try {
						_.insertSettingView_Bottom(t)
					} catch (w) {
						if (e.debug) throw w
					}
					o.init_quan_bottom(t.quan), n(83)(t.promotion), t.shop_promotions && o.init_shop_promotions_bottom(t.shop_promotions), i("#gwdang-notifier").append(i("<ul>", {
						"class": "gwd-close-module gwd-compare",
						id: "gwd-compare"
					})), i("#gwd-compare").on("click", function() {
						z("click:main:compare"), C.log("主工具栏比价模块点击")
					}), i("#gwdang-notifier").append(i("<ul>", {
						"class": "gwd-close-module gwd-compare",
						id: "gwd-compare-tmall",
						style: "display:none"
					})), i("#gwdang-notifier").append(i("<ul>", {
						"class": "gwd-close-module gwd-compare",
						id: "gwd-compare-taobao",
						style: "display:none"
					})), i("#gwdang-notifier").append(i("<ul>", {
						"class": "gwd-close-module gwd-compare",
						id: "gwd-compare-remai",
						style: "display:none"
					}));
					try {
						n(84).init(t.now)
					} catch (w) {
						if (e.debug) throw w
					}
					try {
						n(90).init(t.now.site_id)
					} catch (w) {
						if (e.debug) throw w
					}
					if (r.init(t, "bottom"), l.init(t, "bottom"), d.favor("#gwd-cu", "after", t), d.init(t.share_good), n(70).minibar(), c.init(t, e.site), "vipshop" === e.site && v.init(), p.init(t.now, e.union), h.addPromoActive(),
						h.addPromo(h.getPromoData(t)), u.show(t.exact_arr.isbn, "bottom"), i("#gwdang-notifier").append(i("<a>", {
							"class": "gwd-close re-gwd-close",
							id: "gwd-close",
							gwd_open: 1 != e.p_fold ? 1 : 0,
							href: "javascript:"
						}).append(i("<em>", {
							"class": "gwd-close-left gwd-bg re-gwd-close-left"
						}))), i("#gwd-close").click(function() {
							var t;
							1 == i(this).attr("gwd_open") ? (t = 1, i("#gwdang-notifier").css("width", "51px").attr("auto", 1), i(".gwd-close-module").hide(), i(this).find("em").removeClass("gwd-close-left").addClass("gwd-close-right"), i(this).attr("gwd_open", 0)) : (t = 0, i("#gwdang-notifier").css("width", "100%").attr("auto", 0), i(".gwd-close-module").show(), i(this).find("em").removeClass("gwd-close-right").addClass("gwd-close-left"), i(this).attr("gwd_open", 1), "1" !== i("#gwd-trend").attr("show") && i("#gwd-trend").hide(), i(window).resize()), "maxthon" === e.from_device && k.trigger({
								type: "set_p_fold",
								value: t
							}), s.mainbarfold(t)
						}), i("#gwd_closeall").click(function(t) {
							if (1 != e.p_fold) {
								var n = 1;
								i("#gwd_closeall").text("展开插件"), i("#gwd_closeMainbar .gwd_closeall").css("background-position", "-66px -5px")
							} else {
								var n = 0;
								i("#gwd_closeall").text("收起插件"), i("#gwd_closeMainbar .gwd_closeall").css("background-position", "-55px -5px")
							}
							i("#gwd-close").click(), s.mainbarfold(n)
						}), "maxthon" !== e.from_device && i("#gwdang-notifier").append(i("<a>", {
							"class": " gwd_feedback gwd-close-module",
							target: "_blank",
							href: e.server + "/brwext/suggest/?refer=" + encodeURIComponent(document.location.href) + "&from_device=" + y(e.from_device) + "&btype=" + (e.btype ? e.btype : ""),
							title: "意见反馈"
						}).append(i("<em>", {
							"class": "gwd-bg gwd_feedback_icon"
						}))), e.hao123 || i("#gwdang-notifier").append(i("<a>", {
							"class": "gwd_option_setting gwd-close-module",
							target: "_blank",
							href: e.server + "/brwext/setting?from=" + y(e.from_device) + "&btype=" + (e.btype ? e.btype : ""),
							title: "功能设置"
						}).append(i("<em>", {
							"class": "gwd-bg gwd_setting_icon"
						}))), i("#gwdang-notifier").append(i("<div>", {
							"class": "gwd-close-module gwd-search re-gwd-search",
							show: "1",
							id: "gwd-search"
						})), i("#gwd-search").append(i("<form>", {
							id: "gwd-search-form",
							action: "http://s.taobao.com/search?",
							method: "GET",
							target: "_blank"
						}).append(i("<ul>", {
							id: "search_website",
							"class": "noright"
						}).append(i("<li>", {
							"class": "search_website_item_hidden"
						}).html("<div><span class='website_item'>国美</span><span class='arrow gwd-bg'></span></div>")).append(i("<li>", {
							"class": "search_website_item_hidden"
						}).html("<div><span class='website_item'>一号店</span><span class='arrow gwd-bg'></span></div>")).append(i("<li>", {
							"class": "search_website_item_hidden"
						}).html("<div><span class='website_item'>唯品会</span><span class='arrow gwd-bg'></span></div>")).append(i("<li>", {
							"class": "search_website_item_hidden"
						}).html("<div><span class='website_item'>当当</span><span class='arrow gwd-bg'></span></div>")).append(i("<li>", {
							"class": "search_website_item_hidden"
						}).html("<div><span class='website_item'>亚马逊</span><span class='arrow gwd-bg'></span></div>")).append(i("<li>", {
							"class": "search_website_item_hidden"
						}).html("<div><span class='website_item'>苏宁</span><span class='arrow gwd-bg'></span></div>")).append(i("<li>", {
							"class": "search_website_item_hidden"
						}).html("<div><span class='website_item'>京东</span><span class='arrow gwd-bg'></span></div>")).append(i("<li>", {
							"class": "search_website_item_hidden"
						}).html("<div><span class='website_item'>购物党</span><span class='arrow gwd-bg'></span></div>")).append(i("<li>", {
							"class": "search_website_item_show search_website_item_select gwd-search-arrow-down "
						}).html("<div><span class='website_item'>淘宝</span><span class='arrow gwd-bg'></span></div>"))).append(i("<input>", {
							"class": "gwd-search-input",
							name: "q"
						}).val("" != t.keyword ? t.keyword : t.collectInfo.title)).append(i("<input>", {
							type: "button",
							"class": "gwd-bg gwd-search-btn"
						}))), i(".gwd-logo").on("click", function() {
							z("click:main:logo"), C.log("主工具栏logo点击")
						}), i(".gwd-search-btn").on("click", function() {
							z("click:main:search"), C.log("主工具栏搜索点击")
						}), g.init("bottom"), i("#gwdang-notifier").append(i("<div>", {
							"class": "gwd-close-module gwd-trend-div",
							id: "gwd-trend",
							style: "display:none"
						}).append(i("<span>", {
							"class": "gwd-compare-item gwd-trend",
							href: "javascript:"
						}).append(i("<em>", {
							"class": "gwd-trend-icon gwd-bg"
						})).append(i("<p>").append(i("<b>").text("价格历史")))).append(i("<div>", {
							"class": "gwd-trend-detail gwd-compare-item-detail re-gwd-compare-item-detail",
							id: "gwd-trend-chart",
							style: "display:none;width:804px;height:254px;"
						}))), m.init(e.where_buy_dps, t.now_dp_id, "bottom"), t.now_dp_id && /^-?\d+-\d+$/.test(t.now_dp_id)) {
						var x = e.c_server + "/dp" + t.now_dp_id + "/where_buy/";
						t.b2c && t.b2c.min_price || (x = t.b2c_fuzzy ? "https://www.gwdang.com/search?s_product=" + encodeURIComponent(t.keyword) : "http://s.taobao.com/search?q=" + encodeURIComponent(t.keyword)), i("#gwdang-notifier").append(i("<a>", {
							"class": "gwd-close-module gwd-more",
							id: "gwd-more",
							href: x,
							target: "_blank",
							style: "fuzzy" == i("#gwdang-notifier").attr("b2c") ? "padding-top:30px;padding-bottom:27px;margin-top:0;" : ""
						}).text("更多..."))
					}
					if ("" != t.exact_arr.isbn && (e.isbn = t.exact_arr.isbn), e.setMouseOverHandler(), e.autoFixWidth(), e.IE6 && "amazon" == e.site) {
						var T = document.body.scrollTop + document.body.clientHeight - 60;
						i("#gwdang-notifier").css("top", T + "px"), i(".gwd-trend").css("padding-left", "0px").css("width", "105px"), i("#gwd-trend-chart").css("bottom", "55px"), i(window).scroll(function() {
							var t = document.body.scrollTop + document.body.clientHeight - 60;
							i("#gwdang-notifier").css("top", t + "px")
						})
					}
					"taobao" == e.site && /taobao/.test(location.href) && s.retry(function() {
						return i(".tb-toolbar-list-with-gotop").length
					}, function() {
						i(".tb-toolbar-list-with-gotop").css("bottom", "60px")
					}, 5, 1e3), "tmall" == e.site && i(window).on("scroll", function() {
						var t = i(".mui-mbar-tab-top");
						t && (t.css("bottom", 60), t.css("left", -36))
					}), i(window).resize(function() {
						i("gwd-search").hide(), e.bottomResizeTimer && clearTimeout(e.bottomResizeTimer), e.bottomResizeTimer = setTimeout(function() {
							var n = document.documentElement.clientWidth > 0 ? document.documentElement.clientWidth : document.body.clientWidth;
							if (e.width = n, 1 != i("#gwdang-notifier").attr("auto") && (r.init(t, "bottom"), i(window).trigger("reDrawTaobaoBanner"), e.autoFixWidth(), e.IE6 && "amazon" == e.site)) {
								var a = document.body.scrollTop + document.body.clientHeight - 60;
								i("#gwdang-notifier").css("top", a + "px")
							}
						}, 300)
					}), 1 == e.p_fold && (i("#gwdang-notifier").css("width", "51px").attr("auto", 1), i(".gwd-close-module").hide(), i("#gwd-close").find("em").removeClass("gwd-close-left").addClass("gwd-close-right"), i("#gwd-close").attr("open", 1)), "maxthon" === e.from_device && a()
				}
			}, t.exports.display_search_bar_bottom = function(t) {
				i("#gwdang-notifier").addClass("gwd-mini").attr("style", "bottom:-60px;width:auto;border-radius:0 15px 15px 0;bottom:-60px;display:block !important;z-index:9999999999 !important;"), "msie" == e.browser.agent && (0 == e.fold ? (e.IE7 && i("#gwdang-notifier").css("width", "148px"), e.IE6 && i("#gwdang-notifier").css("width", "154px")) : (e.IE6 || e.IE7) && i("#gwdang-notifier").css("width", "51px")), i("#gwdang-notifier").animate({
					bottom: "0px"
				}, 500, !1);
				var a = i("#gwdang-notifier").append(i("<a>", {
					"class": "gwd-bg gwd-logo gwd-re-change-logo",
					href: e.c_server + "",
					target: "_blank"
				}));
				i(".gwd-re-change-logo").append(i("<em>")), "maxthon" !== e.from_device && a.append(i("<a>", {
					id: "gwd-quan",
					"class": "gwd-close-module gwd-desc re-gwd-desc",
					href: t.quan.href,
					title: t.quan.title,
					target: "_blank"
				}).append(i("<em>", {
					"class": "gwd-bg gwd-quan gwd-re-change-margin"
				}))), a.append(i("<a>", {
					id: "gwd-cu",
					"class": "gwd-close-module gwd-desc re-gwd-desc",
					style: "border-right: none;",
					href: t.activity.href,
					title: t.activity.title,
					target: "_blank"
				}).append(i("<em>", {
					"class": "gwd-bg gwd-cu gwd-re-change-margin"
				}))), e.circleNotice("1" == t.quan.type, "1" == t.activity.type), d.favor("#gwd-cu", "after", t), i("#gwd-favor-notice").css("bottom", "5px"), i("#gwdang-notifier .gwd-favor-module .gwd-detail .gwd-loading-img").css("bottom", "10px"), i("#gwd_favor_item_list").attr("style", "padding-bottom:25px !important"), i("#gwdang-notifier").delegate("#gwd_favor,#gwd-favor-detail", "mouseenter", function() {
					i("a.gwd-compare-item").removeClass("gwd-compare-item-hover"), i("#gwd_favor").addClass("gwd_favor_hover"), i("div.gwd-compare-item-detail").hide(), i("#gwd-favor-detail").show(), z("hover:main:favor"), C.log("主工具栏收藏夹鼠标悬浮")
				}), i("#gwdang-notifier").delegate("#gwd_favor,#gwd-favor-detail", "mouseleave", function() {
					i("#gwd_favor").removeClass("gwd_favor_hover"), i("#gwd-favor-detail").hide()
				}), i("#gwdang-notifier").append(i("<a>", {
					"class": "gwd-close re-gwd-close",
					id: "gwd-close",
					style: "border-radius: 0 15px 15px 0",
					gwd_open: e.fold
				}).append(i("<em>", {
					"class": "gwd-close-" + (1 == e.fold ? "right" : "left") + " gwd-bg"
				}))), 1 == e.fold && i(".gwd-close-module").hide();
				var o = 1;
				i("#gwd-close").click(function() {
					1 != i(this).attr("gwd_open") ? (i(".gwd-close-module").hide(), i(this).find("em").removeClass("gwd-close-left").addClass("gwd-close-right"), i(this).attr("gwd_open", 1), (e.IE6 || e.IE7) && i("#gwdang-notifier").css("width", "51px"), o = 1) : (i(".gwd-close-module").show(), i(this).find("em").removeClass("gwd-close-right").addClass("gwd-close-left"), i(this).attr("gwd_open", 0), e.autoFixWidth(), e.IE7 && i("#gwdang-notifier").css("width", "148px"), e.IE6 && i("#gwdang-notifier").css("width", "154px"), o = 0);
					var t = n(16);
					t.get(e.server + "/brwext/permanent_id?version=2&op=set_fold&fold=" + o).done(function(t) {
						e.fold = o
					})
				}), i(window).unbind("resize"), f.init(), w.init()
			}
		}).call(e, n(1), n(12))
	},
	function(t, e, n) {
		var i;
		(function(a) {
			"use strict";
			i = function() {
				function t(t, e, n, i) {
					function a() {
						o >= n || (t() ? e() : (o++, setTimeout(a, i)))
					}
					var o = 0;
					a()
				}

				function e(t) {
					var e = t,
						i = n(16);
					i.get(a.server + "/brwext/permanent_id?version=2&op=set_p_fold&p_fold=" + e).done(function(t) {
						a.p_fold = e
					})
				}
				return {
					mainbarfold: e,
					retry: t
				}
			}.call(e, n, e, t), !(void 0 !== i && (t.exports = i))
		}).call(e, n(1))
	},
	function(t, e, n) {
		var i;
		(function(a) {
			"use strict";
			i = function() {
				function t(t, e) {
					if (!(o("#douban-top").length > 0 || null == t.rating.average || 0 == parseInt(t.rating.average))) {
						var n = t.rating.average;
						o("#gwdang-main-contents").append(o("<a>", {
							style: "height:30px",
							title: "豆瓣评分",
							id: "douban-top",
							target: "_blank",
							href: t.alt + "reviews?gwd_isbn=" + e
						}).append(o("<span>", {
							"class": "douban-icon"
						})).append(o("<span>", {
							style: "color:#007610"
						}).append(n + "分")))
					}
				}

				function e(t, e) {
					if (!(o("#gwd-douban").length > 0 || null == t.rating.average || 0 == parseInt(t.rating.average))) {
						var n = t.rating.average;
						o(".gwd-favor-module").eq(0).after(o("<div>", {
							id: "gwd-douban",
							"class": "gwd-close-module gwd-desc re-gwd-desc"
						}).append(o("<a>", {
							id: "goto_douban",
							title: "豆瓣评分",
							target: "_blank",
							href: t.alt + "reviews?gwd_isbn=" + e
						}).append(o("<div>", {
							"class": "gwdand_douban_icon_bottom"
						})).append(o("<div>", {
							"class": "gwdang_douban_text_bottom"
						}).append(n + "分")))), s.setBottomViewOffset(), l.setBottomViewOffset()
					}
				}

				function i(t, e) {
					if (!(o("#gwdang_douban_div").text().length > 1 || null == t.rating.average || 0 == parseInt(t.rating.average))) {
						var n = t.rating.average,
							i = 16,
							a = 80,
							r = 16,
							s = -80,
							l = -179,
							d = 0,
							c = 0,
							p = parseFloat(n) / 2,
							h = parseInt(p);
						p != h && (p = .25 >= p - h ? h : p - h >= .75 ? h + 1 : h + .5), d = r * parseInt(p - 5), c = parseInt(p) == p ? s : l;
						var u = "height:" + i + "px;width:" + a + "px;background-position:" + d + "px " + c + "px;float:left";
						o("#gwdang_douban_div").addClass("gwdang_douban"), o("#gwdang_douban_div").append(o("<a>", {
							id: "gwdang_douban_insert_icon",
							title: "豆瓣评分",
							target: "_blank",
							href: t.alt + "reviews?gwd_isbn=" + e
						})).append(o("<div>", {
							id: "gwdang_douban_insert_text"
						}).append(o("<span>", {
							"class": "gwdang_douban_insert_text"
						}).append("评分："))).append(o("<div>", {
							id: "gwdang_douban_star",
							style: u
						})).append(o("<div>", {
							id: "gwdang_douban_average"
						}).append(t.rating.average + "分"))
					}
				}
				var o = n(12),
					r = {},
					s = n(44),
					l = n(50);
				return r.show = function(o, r) {
					if (null != o && "" != o) {
						var s = n(16);
						s.getPure("http://api.douban.com/v2/book/isbn/:" + o).done(function(n) {
							"6000" != n.code && ("top" == r && t(n, o), "bottom" == r && e(n, o), i(n, o), a.fixWidth())
						})
					}
				}, r
			}.call(e, n, e, t), !(void 0 !== i && (t.exports = i))
		}).call(e, n(1))
	},
	function(t, e, n) {
		var i;
		(function(a) {
			"use strict";
			i = function() {
				var t = n(12);
				return {
					type: "top",
					clearTimer: null,
					tabs: {
						jingdong: {
							site_id: 3,
							pattern: "http://search.jd.com/Search?enc=utf-8&keyword="
						},
						amazon: {
							site_id: 1,
							pattern: "https://www.amazon.cn/s?field-keywords="
						},
						dangdang: {
							site_id: 2,
							pattern: "http://searchb.dangdang.com/?key="
						},
						suning: {
							site_id: 25,
							pattern: "http://search.suning.com/emall/search.do?keyword="
						},
						taobao: {
							site_id: 83,
							pattern: "https://s.taobao.com/search?q="
						},
						gome: {
							site_id: 28,
							pattern: "http://www.gome.com.cn/search?question="
						},
						yihaodian: {
							site_id: 31,
							pattern: "http://search.yhd.com/s2/c0-0/k"
						},
						vipshop: {
							site_id: 129,
							pattern: "http://search.vip.com/search?searchkw="
						}
					},
					gwdApi: "https://www.gwdang.com/search?s_product=",
					isFolderOpen: !1,
					setType: function(t) {
						this.type = t
					},
					sendSearchWay: function(t) {
						var e = {
								"国美": "gome",
								"一号店": "yihaodian",
								"唯品会": "vipshop",
								"苏宁": "suning",
								"京东": "jd",
								"当当": "dangdang",
								"亚马逊": "amazon",
								"淘宝": "taobao",
								"购物党": "gwd"
							},
							i = n(16);
						i.get(a.server + "/brwext/permanent_id?version=2&op=set_search_way&search_way=" + e[t])
					},
					setSearchWay: function() {
						var e = {
							gome: "国美",
							yihaodian: "一号店",
							vipshop: "唯品会",
							suning: "苏宁",
							jd: "京东",
							dangdang: "当当",
							amazon: "亚马逊",
							taobao: "淘宝",
							gwd: "购物党"
						};
						a.search_way = e[a.search_way], "vipshop" == a.site && (a.search_way = "唯品会");
						var n = this,
							i = ["淘宝", "苏宁", "唯品会", "当当", "京东", "亚马逊", "购物党", "国美", "一号店"];
						t.inArray(a.search_way, i) > -1 && t("#search_website").children("li").each(function() {
							a.search_way == t(this).text() && (t("#search_website").children("li").each(function() {
								t(this).removeClass("search_website_item_select"), t(this).removeClass("gwd-search-arrow-up"), t(this).removeClass("gwd-search-arrow-down")
							}), t(this).addClass("search_website_item_select"), t(this).addClass("gwd-search-arrow-down"), n.hidden_search_website())
						})
					},
					hidden_search_website: function() {
						var e = t("#search_website"),
							n = this;
						e.children("li").each(function() {
							t(this).removeClass("search_website_item_show"), t(this).addClass("search_website_item_hidden")
						}), t(".search_website_item_select").each(function() {
							t(this).removeClass("search_website_item_hidden"), t(this).addClass("search_website_item_show"), "top" == n.type && t("#search_website").prepend(t(this)), "bottom" == n.type && t("#search_website").append(t(this))
						}), "bottom" == n.type && (e.attr("style", "top:0px;border-right:1px solid #fff"), a.IE6 && e.css("top", "18px")), "top" == n.type && e.attr("style", "border-right-color:#fff;height:24px;")
					},
					bindMorseEnter: function() {
						var e = this;
						t("#search_website").click(function() {
							if (!e.isFolderOpen) {
								t(this).children("li").each(function() {
									t(this).removeClass("search_website_item_hidden"), t(this).addClass("search_website_item_show")
								}), "bottom" == e.type && (t(this).attr("style", "top:-175px;border-right:1px solid #cdcdcd;height:200px;"), a.IE6 && t(this).css("top", "-158px")), "top" == e.type && t(this).attr("style", "border-right:1px solid #cdcdcd;height:auto;width:61px;");
								var n = t("li.gwd-search-arrow-down span").eq(0);
								n.parent().parent().addClass("gwd-search-arrow-up"), n.parent().parent().removeClass("gwd-search-arrow-down"), e.isFolderOpen = !0
							}
						})
					},
					bindMorseLeave: function() {
						var e = this;
						t("#search_website").mouseleave(function() {
							e.clearTimer = setTimeout(function() {
								e.hidden_search_website();
								var n = t("li.gwd-search-arrow-up div").eq(0);
								n.parent().addClass("gwd-search-arrow-down"), n.parent().removeClass("gwd-search-arrow-up"), e.isFolderOpen = !1
							}, 500)
						}), t("#search_website").mouseenter(function() {
							clearTimeout(e.clearTimer)
						})
					},
					bindMorseClick: function() {
						var e = this;
						t("#search_website li").click(function(n) {
							e.isFolderOpen && (t("#search_website").children("li").each(function() {
								t(this).removeClass("search_website_item_select"), t(this).removeClass("gwd-search-arrow-up")
							}), t(this).addClass("search_website_item_select"), t(this).addClass("gwd-search-arrow-down"), e.hidden_search_website(), e.sendSearchWay(t(this).text()), e.isFolderOpen = !1, n.stopPropagation())
						})
					},
					bindStartSearch: function() {
						var e = this,
							n = "",
							i = "",
							o = "#gwdang-search-product",
							r = "#gwdang-search";
						"bottom" == this.type && (o = ".gwd-search-input", r = ".gwd-search-btn"), t(r).bind("click", function(r) {
							var s = t(".search_website_item_show").text();
							if ("京东" == s && (n = e.tabs.jingdong.pattern, i = e.tabs.jingdong.site_id), "淘宝" == s && (n = e.tabs.taobao.pattern, i = e.tabs.taobao.site_id), "当当" == s) {
								n = e.tabs.dangdang.pattern, i = e.tabs.dangdang.site_id;
								var l = t(o).val();
								l = l.replace(/ /g, "-"), l.length > 30 && (l = l.substr(0, 30)), t(o).val(l)
							}
							if ("苏宁" == s && (n = e.tabs.suning.pattern, i = e.tabs.suning.site_id), "亚马逊" == s && (n = e.tabs.amazon.pattern, i = e.tabs.amazon.site_id), "国美" == s && (n = e.tabs.gome.pattern, i = e.tabs.gome.site_id), "一号店" == s && (n = e.tabs.yihaodian.pattern, i = e.tabs.yihaodian.site_id), "唯品会" == s && (n = e.tabs.vipshop.pattern, i = e.tabs.vipshop.site_id), "购物党" == s) n = e.gwdApi, window.open(n + encodeURIComponent(t(o).val()));
							else if ("唯品会" == s) window.open(n + encodeURIComponent(t(o).val()) + "&ju=JUU2JTg4JTkxJUU2JTk4JUFGdmlwc2hvcA");
							else {
								var d = a.go_union ? a.go_union : "http://u.gwdang.com/union/go",
									c = d + "/?s_product=" + encodeURIComponent(t(o).val()) + "&target_url=" + encodeURIComponent(n + encodeURI(t(o).val())) + "&site_id=" + i;
								window.open(c)
							}
							return r.stopPropagation(), !1
						})
					},
					bindFormAction: function() {
						var e = "#gwdang-search-product",
							n = "#gwdang-search";
						"bottom" == this.type && (e = ".gwd-search-input", n = ".gwd-search-btn"), t(e).bind("keypress", function(e) {
							return "13" == e.keyCode ? (t(n).click(), e.stopPropagation(), !1) : void 0
						})
					},
					init: function(t) {
						this.setType(t), this.setSearchWay(), this.bindMorseEnter(), this.bindMorseLeave(), this.bindMorseClick(), this.bindStartSearch(), this.bindFormAction()
					}
				}
			}.call(e, n, e, t), !(void 0 !== i && (t.exports = i))
		}).call(e, n(1))
	},
	function(t, e, n) {
		var i;
		(function(a, o) {
			"use strict";
			i = function() {
				function t() {
					for (var t = !1, e = P.length - 1; e >= 0; e--)
						if (t = P[e].test(location.href)) return t
				}

				function e(t) {
					z("body").on("mouseover", "img", function(t) {
						var e = t.target;
						if (e.width > 50 && e.height > 50) {
							var n = e.parentElement;
							"A" === n.tagName && /^https?:\/\//.test(n.href) && T.isProductPage(n.href) && (c(e), x = i(e, n.href), d(n), r(n))
						}
					}), w.on("mouseenter", s), w.on("mouseleave", function() {
						v = setTimeout(function() {
							_.hide(), b = !1, w.hide()
						}, 600)
					}), _.on("mouseenter", function() {
						clearTimeout(v), b = !0, _.show()
					}), _.on("mouseleave", function() {
						v = setTimeout(function() {
							_.hide(), w.hide(), b = !1
						}, 600)
					})
				}

				function i(t, e) {
					switch (j.siteName) {
						case "suning":
							var n = z(t).parents(".wrap").find("input.hidenInfo").attr("datapro").split("||")[0];
							e = "http://www.suning.com/emall/prd_10052_10051_-7_" + n + "_.html"
					}
					return e
				}

				function r(t) {
					var e = z(t);
					e.attr("gwd_tip_bind") || (e.on("mouseleave", l), e.attr("gwd_tip_bind", 1))
				}

				function s() {
					clearTimeout(v), w.show(), p()
				}

				function l() {
					clearTimeout(v), b ? v = setTimeout(function() {
						w.hide(), _.hide(), b = !1
					}, 600) : (w.hide(), _.hide())
				}

				function d(t) {
					w.css("left", L(t) + z(t).width() / 2 - 35), w.css("top", E(t)), w.show()
				}

				function c(t) {
					var e = "";
					switch (a.site) {
						case "yihaodian":
							var n = z(t).parent().attr("id").split("_");
							n && (n = n[1]), e = "&id=" + n + "-31"
					}
					y = e
				}

				function p() {
					_.html('<img src="http://browser.gwdang.com/template/aug/images/035.gif" style="margin: 5px;" id="gwd_price_tip_loading">'), _.css("width", 50), _.css("left", L(z(w)[0]) + z(w).width()), _.css("top", E(z(w)[0])), b = !0, _.show(), I[x] ? h(I[x]) : A.get(a.server + "/brwext/tip?days=180&site=" + a.site + "&url=" + encodeURIComponent(x) + y).done(function(t) {
						return t && 0 !== t.trend.store.length ? (I[x] = t, void h(t)) : m()
					}).fail(m)
				}

				function h(t) {
					g(t), _.html(C.compile(S)({
						data: t
					})), _.css("width", 450), z(window).width() - L(_[0]) - z(w).width() < 450 && _.css("left", L(_[0]) - 450 - z(w).width()), f(t.trend), u(t)
				}

				function u(t) {
					z("#gwd_price_tip_notify_btn").on("click", function(e) {
						e.preventDefault(), z("#gwd_notify_error").hide(), z("#gwd_price_tip_notify_btn").text("正在添加......"), A.get(a.c_server + "/collect/aj_add?dp_id=" + t.dp_id + "&from=tip").done(function(t) {
							100 == t.code || t.code <= 0 ? window.location.href = "https://www.gwdang.com/user/login?from_url=" + encodeURIComponent(window.location.href) : 1 == t.code ? z("#gwd_price_tip_notify_btn").text("已添加到收藏夹").attr("style", "float:right;color:#fff;background:#18A0F5;") : 2 == t.code && "正在添加......" == z("#gwd_price_tip_notify_btn").text() && z("#gwd_price_tip_notify_btn").text("你已经添加过啦").attr("style", "float:right;color:#fff;background:#18A0F5;")
						})
					})
				}

				function g(t) {
					var e = [1, 103, 108, 123, 124, 126, 129, 134, 136, 14, 141, 15, 167, 168, 19, 2, 21, 25, 26, 28, 3, 31, 34, 35, 41, 6, 66, 7, 86, 93, 9],
						n = t.store;
					if (n)
						for (var i = n.length - 1; i >= 0; i--) {
							n[i].icon_url = n[i].icon_url.replace("browser", "s1");
							var o = /\/(\d+)\.ico/.exec(n[i].icon_url);
							o && (o = o[1], !a.IE6 && e.indexOf(Number(o)) > -1 && (n[i].icon_url = n[i].icon_url.replace(/\d+\.ico/, o + ".png").replace(/browser\./, "s1.")))
						}
				}

				function m() {
					_.html('<div style="color:#777">很抱歉 :( 暂无比价和价格历史信息我们会尽快收录</div>'), _.css("width", 100), _.show()
				}

				function f(t) {
					for (var e = z("#gwd_price_tip_trend"), n = {
						chart: {
							renderTo: "gwd_price_tip_trend",
							type: "line",
							spacingTop: 0,
							spacingBottom: 0,
							spacingLeft: 0,
							spacingRight: 0
						},
						credits: {
							enabled: !1
						},
						colors: ["#2f7ed8"],
						title: {
							text: "最近180天价格历史",
							style: {
								color: "#2f7ed8"
							}
						},
						xAxis: {
							type: "datetime",
							dateTimeLabelFormats: {
								day: "%m-%d",
								week: "%m-%d",
								month: "%m-%d"
							},
							minorGridLineColor: "#dfdfdf",
							labels: {
								x: -12
							}
						},
						yAxis: {
							title: null,
							plotLines: [{
								value: 0,
								width: 1,
								color: "#808080"
							}],
							gridLineColor: "#c0d0e0",
							minorGridLineColor: "#dfdfdf",
							tickPixelInterval: 50
						},
						plotOptions: {
							series: {
								animation: !1,
								marker: {
									radius: 2
								},
								series: {
									enableMouseTracking: !1
								},
								shadow: !1
							}
						},
						tooltip: {
							xDateFormat: "%Y-%m-%d"
						},
						legend: {
							enabled: !1
						},
						series: []
					}, i = t.store.length, a = 0; i > a; a++)
						if (n.series[a] = {
							visible: !0,
							name: t.store[a].name,
							pointStart: Date.UTC(t.startY, t.startM, t.startD),
							pointInterval: 864e5,
							data: []
						}, t.store[a].data.length > 0) {
							var r = t.store[a],
								s = r.data.length,
								l = r.data;
							1e3 * r.min_stamp > parseInt(Date.UTC(t.startY, t.startM, t.startD)) && n.series[a].data.push(null);
							for (var d = 0; s > d; d++) {
								var c = new Array(2);
								c[0] = parseInt(l[d][0]), c[1] = parseFloat(l[d][1]), n.series[a].data.push(c)
							}
						}
					z("#" + n.chart.renderTo).length && new o.Chart(n), e.show()
				}
				var w, _, v, b, x, y, k = {},
					z = n(12),
					C = n(13),
					T = n(10),
					S = n(80),
					j = T.getPageInfo(),
					I = {},
					P = [/taobao\.com/, /tmall\.com/, /amazon/],
					A = n(16),
					E = function O(t) {
						var e = t.offsetTop;
						return null != t.offsetParent && (e += O(t.offsetParent)), e
					},
					L = function N(t) {
						var e = t.offsetLeft;
						return null != t.offsetParent && (e += N(t.offsetParent)), e
					};
				return k.init = function() {
					t() || (1 === j.type && (z("body").append('<a id ="gwd_price_tip" src="javascript:void(0)" target="_self" ></a><div id="gwd_price_tip_detail"></div>'), w = z("#gwd_price_tip"), _ = z("#gwd_price_tip_detail")), e())
				}, k
			}.call(e, n, e, t), !(void 0 !== i && (t.exports = i))
		}).call(e, n(1), n(69))
	},
	function(t, e) {
		t.exports = '<ul id="gwd_price_tip_store" style="display: block;">\r\n  <li><a href="{{data.more_link}}" target="_blank"><span class="tleb">商家比价：</span></a></li>\r\n  {{each data.store}}\r\n  <li>\r\n    <img src="{{$value.icon_url}}" alt="{{$value.site_name}}" title="{{$value.site_name}}">\r\n    <a href="{{$value.url}}" target="_blank">\r\n      <span alt="{{$value.site_name}}" title="{{$value.site_name}}" {{if $index == 0}}style="color:#d80001"{{/if}}>{{$value.price}}</span>\r\n    </a>\r\n  </li>\r\n  {{/each}}\r\n  <li><a href="{{data.more_link}}" target="_blank"><span class="tle">{{data.more_tle}}</span></a></li>\r\n</ul>\r\n<div id="gwd_price_tip_trend" style="width: 300px; height: 150px;"></div>\r\n<div id="gwd_price_tip_other" style="display: block;">\r\n  <div id="gwd_tip_left_info" style="float: left; height: 50px; width: 98px; margin: 0px; text-align: center;"><a id="gwd_price_tip_logo" href="https://www.gwdang.com" target="_blank" style="display:inline;margin-top:0px;background-position:-237px 8px;"></a></div>\r\n  <div id="gwd_price_tip_notify" style="display: block;">\r\n    <div id="gwd_price_tip_record"> \r\n      <span id="gwd_min" style="font-weight:bold">最低: {{data.trend.store[0].min_price}}元</span>\r\n      <span id="gwd_max">最高: {{data.trend.store[0].max_price}}元</span>\r\n    </div>\r\n    <a id="gwd_price_tip_notify_btn" href="javascript:void(0)" style="float:right;" target="_self">收藏并降价提醒</a>\r\n    <div style="clear:both;" id="gwd_more_link">\r\n      {{data.site_name}}\r\n      {{each data.more}}\r\n      <a href="{{$value.url}}" target="_blank">{{$value.title}}</a>\r\n      {{if $index + 1 != data.more.length}}、{{/if}}\r\n      {{/each}}\r\n    </div>\r\n    <div style="clear:both;"></div>\r\n  </div>\r\n  <div style="clear:both;"></div>\r\n</div>'
	},
	function(t, e, n) {
		var i;
		(function(a) {
			"use strict";
			i = function() {
				var t = n(12),
					e = n(82);
				return {
					hiddenTimer: null,
					insertSettingView: function(n) {
						t("#gwdang-notifier").append(t("<div>", {
							id: "gwd_setting_div",
							style: "display:none"
						}).append(t("<div>", {
							"class": "pointer-up"
						}).html("<!--[if IE 6]>◆<![endif]-->")).append(t("<div>", {
							id: "gwd_setting_content"
						}).append(t("<div>", {
							"class": "gwd_setting_item"
						}).append(t("<div>", {
							"class": "gwdsetting_bg gwd_function_setting"
						})).append(t("<a>", {
							href: a.server + "/brwext/setting?from=" + e(a.from_device) + "&btype=" + (a.btype ? a.btype : ""),
							target: "_blank"
						}).text("功能设置"))).append(t("<div>", {
							"class": "gwd_setting_item"
						}).append(t("<div>", {
							"class": "gwdsetting_bg gwd_opinion_feedback"
						})).append(t("<a>", {
							href: a.server + "/brwext/suggest/?refer=" + encodeURIComponent(document.location.href) + "&from_device=" + a.from_device + "&btype=" + (a.btype ? a.btype : ""),
							target: "_blank"
						}).text("意见反馈"))).append(t("<div>", {
							"class": "gwd_setting_item"
						}).append(t("<div>", {
							"class": "gwdsetting_bg gwd_use_help"
						})).append(t("<a>", {
							href: "http://blog.gwdang.com/?p=314",
							target: "_blank"
						}).text("使用帮助"))).append(t("<div>", {
							"class": "gwd_setting_item"
						}).append(t("<div>", {
							"class": "gwdsetting_bg gwd_homepage"
						})).append(t("<a>", {
							href: "https://www.gwdang.com/",
							target: "_blank"
						}).text("购物党首页"))).append(t("<div>", {
							"class": "gwd_setting_line"
						})).append(t("<div>", {
							"class": "gwd_setting_item"
						}).append(t("<div>", {
							"class": "gwdsetting_bg gwd_share_sina_weibo"
						})).append("<a title='分享到新浪微博' target='_self' ahref='" + n.share_good.sina + "' onclick=\"" + n.share.win + "\" href='javascript:'>分享到新浪微博</a>")).append(t("<div>", {
							"class": "gwd_setting_item"
						}).append(t("<div>", {
							"class": "gwdsetting_bg gwd_share_qq_qzone"
						})).append("<a title='分享到QQ空间' target='_self' ahref='" + n.share_good.qzone + "' onclick=\"" + n.share.win + "\" href='javascript:'>分享到QQ空间</a>")))), this.bindEvent()
					},
					insertSettingView_Bottom: function(n) {
						t("#gwdang-notifier").append(t("<div>", {
							id: "gwd_setting_div",
							style: "display:none"
						}).append(t("<div>", {
							id: "gwd_setting_content"
						}).append(t("<div>", {
							"class": "gwd_setting_item"
						}).append(t("<div>", {
							"class": "gwd_setting_bg gwd_share_qq_qzone"
						})).append("<a title='分享到QQ空间' target='_self' ahref='" + n.share_good.qzone + "' onclick=\"" + n.share.win + "\" href='javascript:'>分享到QQ空间</a>")).append(t("<div>", {
							"class": "gwd_setting_item"
						}).append(t("<div>", {
							"class": "gwd_setting_bg gwd_share_sina_weibo"
						})).append("<a title='分享到新浪微博' target='_self' ahref='" + n.share_good.sina + "' onclick=\"" + n.share.win + "\" href='javascript:'>分享到新浪微博</a>")).append(t("<div>", {
							"class": "gwd_setting_line"
						})).append(t("<div>", {
							"class": "gwd_setting_item"
						}).append(t("<div>", {
							"class": "gwd_setting_bg gwd_homepage"
						})).append(t("<a>", {
							href: "https://www.gwdang.com/",
							target: "_blank"
						}).text("购物党首页"))).append(t("<div>", {
							"class": "gwd_setting_item"
						}).append(t("<div>", {
							"class": "gwd_setting_bg gwd_use_help"
						})).append(t("<a>", {
							href: "http://blog.gwdang.com/?p=314",
							target: "_blank"
						}).text("使用帮助"))).append(t("<div>", {
							"class": "gwd_setting_item"
						}).append(t("<div>", {
							"class": "gwd_setting_bg gwd_opinion_feedback"
						})).append(t("<a>", {
							href: a.server + "/brwext/suggest/?refer=" + encodeURIComponent(document.location.href) + "&from_device=" + e(a.from_device) + "&btype=" + (a.btype ? a.btype : ""),
							target: "_blank"
						}).text("意见反馈"))).append(t("<div>", {
							"class": "gwd_setting_item"
						}).append(t("<div>", {
							"class": "gwd_setting_bg gwd_function_setting"
						})).append(t("<a>", {
							href: a.server + "/brwext/setting?from=" + e(a.from_device) + "&btype=" + (a.btype ? a.btype : ""),
							target: "_blank"
						}).text("功能设置"))).append(t("<div>", {
							id: "gwd_closeMainbar",
							"class": "gwd_setting_item"
						}).append(t("<div>", {
							style: 1 != a.p_fold ? "background-position: -55px -5px;" : "background-position: -66px -5px;",
							"class": "gwd_setting_bg gwd_closeall"
						})).append(t("<a>", {
							id: "gwd_closeall"
						}).text(1 == a.p_fold ? "展开插件" : "收起插件")))).append(t("<div>", {
							"class": "gwd_setting_bg pointer-down"
						}))), this.bindEvent()
					},
					bindEvent: function() {
						var e = this;
						t("#gwd_setting_content").delegate(".gwd_setting_item", "mouseenter", function() {
							t(this).addClass("gwd_setting_item_hover")
						}), t("#gwd_setting_content").delegate(".gwd_setting_item", "mouseleave", function() {
							t(this).removeClass("gwd_setting_item_hover")
						}), t("#gwd_setting_content").delegate("a", "click", function() {
							e.hiddenSettingDiv()
						}), a.hao123 || "maxthon" === a.from_device || (t("#" + a.logoName + ",.gwd_logo,.gwd-logo,.gwd-re-change-logo").bind("mouseenter", function() {
							a.show_closeMainBar || (t("#gwd_closeMainbar").hide(), t("#gwd_setting_div").addClass("close_mainbar")), t("#gwd_setting_div").show()
						}).bind("mouseleave", function() {
							e.hiddenSettingDiv()
						}), t("#gwd_setting_div").bind("mouseenter", function() {
							clearTimeout(e.hiddenTimer)
						}).bind("mouseleave", function() {
							e.hiddenSettingDiv()
						}))
					},
					hiddenSettingDiv: function() {
						this.hiddenTimer = setTimeout(function() {
							t("#gwd_setting_div").hide()
						}, 300)
					}
				}
			}.call(e, n, e, t), !(void 0 !== i && (t.exports = i))
		}).call(e, n(1))
	},
	function(t, e) {
		"use strict";
		t.exports = function(t) {
			for (var e = "", n = 0; n < t.length; n++) e = e + "_" + t.charCodeAt(n).toString(8);
			return e
		}
	},
	function(t, e, n) {
		(function(e) {
			"use strict";
			t.exports = function(t) {
				var i = n(17),
					a = n(19);
				return t ? (e("#gwd-cu").find(".gwd-tab").attr("href", t.url), void(t && t.promos && t.promos.length && (e("#gwd-cu").append(e("<div>", {
					"class": "gwd-detail",
					style: "display:none"
				}).append(e("<p>", {
					"class": "gwd-compare-item-detail-title gwd-height-auto"
				}).append(e("<span>", {
					"class": "gwd-detail-title-desc",
					text: "本商城促销活动(" + t.num + ")"
				})).append(e("<a>", {
					"class": "gwd-grey gwd_see_all",
					href: t.url,
					text: "查看全部",
					target: "_blank"
				}))).append(function() {
					for (var n = e("<ul>", {
						id: "gwd_promo_item_list",
						"class": "gwd-item-list"
					}), i = 0; i < t.promos.length && 5 > i; i++) n.append(e("<li>", {
						"class": "gwd-list-item",
						style: "display:block"
					}).append(e("<p>", {
						"class": "gwd-product-title"
					}).append(e("<a>", {
						"class": "gwd-grey",
						target: "_blank",
						href: t.promos[i].url,
						title: t.promos[i].title,
						text: t.promos[i].title
					}))));
					return n
				})), e("#gwd-cu").mouseenter(function() {
					e(this).find(".gwd-tab").addClass("gwd-compare-item-hover").end().find(".gwd-detail").show(), i("hover:main:cuxiao"), a.log("主工具栏促销鼠标悬浮")
				}).mouseleave(function() {
					e(this).find(".gwd-tab").removeClass("gwd-compare-item-hover").end().find(".gwd-detail").hide()
				})))) : void e("#gwd-cu").find(".gwd-tab").attr("href", "https://www.gwdang.com/promotion/activity/?from=browser&m=promotion")
			}
		}).call(e, n(12))
	},
	function(t, e, n) {
		(function(e, i) {
			"use strict";

			function a(t) {
				var a = n(85);
				e("#gwdang-main").append(_.compile(a)({
					remo: "更多处于历史最低价的同类商品",
					data: t
				})), i.init_item_list("lowpri"), i.set_item_args("lowpri"), i.set_page_args("lowpri"), i.load_image("lowpri", 0, i.page_size), e("#gwd_lowpri").show()
			}

			function o(t) {
				var a = s(t),
					o = n(86);
				e("#gwd-cu").after(_.compile(o)({
					data: t,
					pageInfo: a
				})), i.setPageArgs("gwd-compare-lowpri", a.perPageSize), i.autoFixWidth()
			}

			function r(t) {
				var e = n(87),
					i = n(88);
				i.init(t, e)
			}

			function s(t) {
				var e = {},
					n = i.getFixedShowProductNum(),
					a = t.length;
				return a >= n ? (e.pages = !0, e.pagewidth = b - 2) : (e.pages = !1, e.pagewidth = 200 * a + 2), e.dpnum = a, e.pagenum = parseInt(a % n == 0 ? a / n : a / n + 1), e.perPageSize = n, e
			}

			function l(t) {
				t.last_price = t.last_price.toString().split(".")[0]
			}

			function d(t) {
				var e = n(49);
				t.length > 30 && (t = t.slice(0, 30));
				for (var a = 0; a < t.length; a++) {
					l(t[a]);
					var o = {
						site_id: t[a].site_id,
						url: t[a].url,
						mod: "zuidijia",
						union: i.union.split("_")[1],
						dp_id: t[a].url_crc + "-" + t[a].site_id
					};
					t[a].url = e.init(o)
				}
				return t
			}

			function c() {
				e("#gwd_lowpri").on("mouseenter", function() {
					e(this).addClass("gwd_lowpri_hover"), e("#gwd_lowpri_detail .all-products").css("width", b - 80), e("#gwd_lowpri_detail").show()
				}), e("#gwd_lowpri").on("mouseleave", function() {
					var t = this;
					w = setTimeout(function() {
						e(t).removeClass("gwd_lowpri_hover"), e("#gwd_lowpri_detail").hide()
					}, 200)
				}), e("#gwd_lowpri_detail").on("mouseenter", function() {
					clearTimeout(w)
				}), e("#gwd_lowpri_detail").on("mouseleave", function() {
					e("#gwd_lowpri").removeClass("gwd_lowpri_hover"), e(this).hide()
				}), e("#gwd_lowpri_detail .left-page").on("click", function() {
					i.change_page("lowpri", -1)
				}), e("#gwd_lowpri_detail .right-page").on("click", function() {
					i.change_page("lowpri", 1)
				})
			}

			function p() {
				e(".lowpri_btn").on("mouseenter", function() {
					clearTimeout(w), e(this).addClass("gwd-compare-item-hover"), e(this).addClass("lowpri_btn_hover"), e("#gwd_lowpri_detail").show()
				}), e(".lowpri_btn").on("mouseleave", function() {
					clearTimeout(w);
					var t = this;
					w = setTimeout(function() {
						e(t).removeClass("gwd-compare-item-hover"),
							e(t).removeClass("lowpri_btn_hover"), e("#gwd_lowpri_detail").hide()
					}, 200)
				}), e("#gwd_lowpri_detail").on("mouseenter", function() {
					clearTimeout(w), e(this).show()
				}), e("#gwd_lowpri_detail").on("mouseleave", function() {
					e(".lowpri_btn").removeClass("gwd-compare-item-hover"), e(".lowpri_btn").removeClass("lowpri_btn_hover"), e(this).hide()
				})
			}

			function h(t) {
				var e = d(t.data);
				"top" == i.style && (a(e), c()), "bottom" == i.style && (o(e), p(), r(e))
			}

			function u() {
				var t = '<a id="gwd_lowpri" ><span class="lowpri_icon"></span><span class="lowpri_text">历史最低价</span></a>';
				e("#gwdang-main-contents").append(_.compile(t)({}))
			}

			function g() {
				"top" == i.style && u()
			}

			function m(t, a, o) {
				var r = n(14).get().price || 0,
					s = i.server + "/extension?ac=price_b2c_lowest&class_id= " + t + "&site_id=" + a + "&price=" + r;
				v.get(s).done(function(t) {
					t && 0 != t.data.length ? o(t) : e("#gwd_lowpri").remove()
				}).fail(function(t) {
					e("#gwd_lowpri").remove()
				})
			}

			function f(t) {
				var e = 0;
				return "0" != t.site_id ? e = t.site_id : "0" != t.now_dp_id && "" != t.now_dp_id && (e = t.now_dp_id.split("-")[1]), e
			}
			var w, _ = n(13),
				v = n(16),
				b = document.documentElement.clientWidth > 0 ? document.documentElement.clientWidth : document.body.clientWidth;
			t.exports.init = function(t) {
				var e = f(t);
				0 != e && (i.IE6 || (g(), m(t.class_id, e, h)))
			}
		}).call(e, n(12), n(1))
	},
	function(t, e) {
		t.exports = '<div id="gwd_lowpri_detail" class="panel price_compare">\r\n  <div class="recom-title">\r\n    <a href="javascript:">{{remo}}</a>\r\n  </div>\r\n  <div class="panel-wrap">\r\n    <div class="pages">\r\n      第&nbsp;\r\n      <span id="lowpri-current-page" class="current-page">1</span>\r\n      &nbsp;页，共&nbsp;\r\n      <span id="lowpri-page-num" class="page-num">1</span>\r\n      &nbsp;页\r\n    </div>\r\n    <div class="left-page">\r\n      <a title="上一页" target="_self" href="javascript:"></a>\r\n    </div>\r\n    <div class="all-products">\r\n      <ul id="lowpri-item-list">\r\n        {{each data}}\r\n          <li id="lowpri-prod-item-{{$index}}">\r\n            <a href="{{$value.url}}" target="_blank" title="{{$value.title}}" class="small-img">\r\n              <img src="{{$value.img_url}}">\r\n            </a>\r\n              <a class="gwd-price">¥{{$value.price}}<span>¥{{$value.last_price}}</span></a>\r\n            <p class="dp">\r\n                <span>{{$value.rev_cnt > 0 ? "评论数:" + $value.rev_cnt : ""}}</span>\r\n              <br>\r\n              <a href="javascript:" target="_blank" title="{{$value.site_name}}">\r\n                <span class="store">{{$value.site_name}}</span>\r\n              </a>\r\n              <a href="{{$value.url}}" target="_blank" title="{{$value.title}}">\r\n                <span class="gwd_title">{{$value.title}}</span>\r\n              </a>\r\n            </p>\r\n            <span class="lowpri_desc\r\n              {{if ($value.latestCreate) }}\r\n                latestCreate\r\n              {{/if}}\r\n              {{if ($value.highest_discount) }}\r\n                highest_discount\r\n              {{/if}}\r\n            ">\r\n            </span>\r\n          </li>\r\n        {{/each}}\r\n      </ul>\r\n    </div>\r\n    <div class="right-page">\r\n      <a title="下一页" target="_self" href="javascript:"></a>\r\n    </div>\r\n  </div>\r\n  <div class="panel-shadow"></div>\r\n  <style type="text/css">\r\n    #gwd_lowpri_detail{\r\n      display: none;\r\n    }\r\n    #gwd_lowpri_detail .left-page{\r\n      left: 5px;\r\n    }\r\n    #gwd_lowpri_detail .all-products{\r\n      left: 35px;\r\n    }\r\n    #gwd_lowpri_detail .recom-title{\r\n      position: absolute;\r\n      left: 35px;\r\n      top: 5px;\r\n      z-index: 9999999999;\r\n    }\r\n    #gwd_lowpri_detail .recom-title a{\r\n      font-weight: bold;\r\n      cursor: text;\r\n    }\r\n    #gwd_lowpri_detail .recom-title a:hover{\r\n      cursor: text;\r\n      color: #333;\r\n    }\r\n    #gwd_lowpri_detail .dp>span:hover,#gwd_lowpri_detail .dp .store:hover {\r\n      color: #000;\r\n      cursor: text;\r\n    }\r\n    #gwd_lowpri_detail .gwd-price:hover {\r\n      color: #E52600;\r\n    }\r\n    .gwdang-main .panel-wrap .all-products ul li a img{\r\n      width: 90px;\r\n    }\r\n    #gwd_lowpri.gwd_lowpri_hover{\r\n      height: 38px;\r\n      background-color: #fff;\r\n      color: #177EE5;\r\n    }\r\n    .lowpri_icon{\r\n      margin-right: 3px;\r\n    }\r\n    .lowpri_icon img {\r\n      width: 20px;\r\n      margin-top: -4px;\r\n    }\r\n    #gwd_lowpri .lowpri_icon{\r\n      display: inline-block;\r\n      float: left;\r\n      height: 18px;\r\n      width: 18px;\r\n      margin-top: 9px;\r\n      background: url(\'https://s1.gwdang.com/images/lowprice_top.png\');\r\n    }\r\n    #lowpri-item-list .gwd-price span {\r\n      color: #999;\r\n      text-decoration: line-through;\r\n      margin-left: 10px;\r\n    }\r\n    #gwd_lowpri_detail .lowpri_desc {\r\n        background: url(\'https://s1.gwdang.com/images/lowpri_desc.png\');\r\n        display: none;\r\n        height: 15px;\r\n        width: 45px;\r\n        position: absolute;\r\n        top: 77px;\r\n        left: 93px;\r\n      }\r\n      #lowpri-item-list li {\r\n        position: relative;\r\n      }\r\n      #gwd_lowpri_detail #lowpri-item-list .latestCreate {\r\n        display: inline-block;\r\n        background-position: -40px -113px;;\r\n      }\r\n      #gwd_lowpri_detail #lowpri-item-list .highest_discount {\r\n        display: inline-block;\r\n        background-position: -40px -14px;\r\n      }\r\n  </style>\r\n</div>'
	},
	function(t, e) {
		t.exports = '<ul id="gwd-compare-lowpri"class="gwd-close-module gwd-desc gwd-compare">\r\n  <li  id="gwd-lowpri" pages="{{pageInfo.pages?\'\':\'1\'}}" len="{{pageInfo.pages?\'\':pageInfo.dpnum}}">\r\n    <a class="lowpri_btn">\r\n      <span class="low_pri_iocn"></span>\r\n    </a>\r\n    <div id="gwd_lowpri_detail" class="gwd-compare-item-detail re-gwd-compare-item-detail gwd-compare-item-detail-fixed" style="width:{{pageInfo.pagewidth}}px">\r\n      <p class="gwd-compare-item-detail-title gwd-height-auto gwd-compare-item-detail-title-fixed">\r\n        <span class="gwd-compare-item-detail-title-desc">更多处于历史最低价的同类商品</span>\r\n      </p>\r\n      <div class="gwd-compare-prev-page gwd-left" style="display:{{pageInfo.pages?\'block\':\'none\'}}">\r\n        <div class="gwd-bg page-arrow"></div>\r\n      </div>\r\n      <ul class="gwd-item-list">\r\n        {{each data}}\r\n          <li class="gwd-list-item " style="display:{{$index>=pageInfo.perPageSize?\'none\':\'block\'}}">\r\n            <a class="gwd-pic" href="{{$value.url}}" target="_blank" rel="noreferrer">\r\n              <img src="https://s1.gwdang.com/images/dp_default.jpg" data-original="{{$value.img_url}}" title="{{$value.title}}">\r\n            </a>\r\n            <a class="gwd-product-title" href="{{$value.url}}" target="_blank" title="{{$value.title}}" rel="noreferrer">\r\n              {{$value.title}}\r\n            </a>\r\n            <a class="gwd-price" href="{{$value.url}}" target="_blank" rel="noreferrer">\r\n              ¥{{$value.price}}\r\n              <span>¥{{$value.last_price}}</span>\r\n            </a>\r\n            <div class="gwd_rev_cnt">\r\n              <a class="gwd_product_comment_amount" href="{{$value.url}}" target="_blank" title="商品评论数">\r\n                <span>\r\n                  {{$value.rev_cnt > 0 ? "评论数:" + $value.rev_cnt : ""}}\r\n                </span>\r\n              </a>\r\n            </div>\r\n            <span class="lowpri_desc\r\n              {{if ($value.latestCreate) }}\r\n                latestCreate\r\n              {{/if}}\r\n              {{if ($value.highest_discount) }}\r\n                highest_discount\r\n              {{/if}}\r\n            ">\r\n            </span>\r\n          </li>\r\n        {{/each}}\r\n      </ul>\r\n      <div class="gwd-compare-next-page gwd-right" style="display:{{pageInfo.pages?\'block\':\'none\'}}">\r\n        <div class="gwd-bg page-arrow"></div>\r\n      </div>\r\n      <div class="gwd-b2c-PageView gwd-b2c-PageView-fixed" style="display:{{pageInfo.pages?\'block\':\'none\'}}">\r\n        <p class="gwd-compare-item-detail-title" style="height:auto;">\r\n          <span style="float:none;padding-left:10px;" class="gwd-compare-item-detail-pages">\r\n            <em id="page-now-lowpri" class="page-now">\r\n              1\r\n            </em>\r\n            /\r\n            <em id="page-total-lowpri" class="page-total">\r\n              {{pageInfo.pagenum}}\r\n            </em>\r\n          </span>\r\n        </p>\r\n      </div>\r\n    </div>\r\n    <style type="text/css">\r\n      #gwd-compare-lowpri>li {\r\n        height: 60px;\r\n      }\r\n      .lowpri_btn{\r\n        display: inline-block;\r\n        height: 37px;\r\n        border-left: 1px solid #fff;\r\n        border-right: 1px solid #fff;\r\n        text-align: center;\r\n        position: relative;\r\n        background: #fff;\r\n        margin-top: 15px;\r\n        width: 33px;\r\n        cursor: pointer;\r\n      }\r\n      #gwd-compare-lowpri .lowpri_btn_hover {\r\n        margin-top: -1px;\r\n        border-bottom: 3px solid #1790dd;\r\n      }\r\n      #gwd_lowpri_detail{\r\n        position: fixed;\r\n        display: none;\r\n      }\r\n      #gwd_lowpri_detail img{\r\n        width: 90px;\r\n      }\r\n      #gwd_lowpri_detail .gwd-compare-item-detail-title, #gwd_lowpri_detail .gwd-b2c-PageView {\r\n        bottom: 241px;\r\n      }\r\n      #gwd_lowpri_detail .gwd-compare-next-page{\r\n        top: 0px;\r\n      }\r\n      .low_pri_iocn{\r\n        background: url(\'https://s1.gwdang.com/images/low_price_bottom.png\');\r\n        display: inline-block;\r\n        height: 25px;\r\n        width: 25px;\r\n        margin-top: 5px;\r\n      }\r\n      .lowpri_btn_hover .low_pri_iocn{\r\n        margin-top: 8px;\r\n      }\r\n      #gwd-compare-lowpri .gwd-price span {\r\n        color: #999;\r\n        text-decoration: line-through;\r\n        margin-left: 10px;\r\n        font-weight: normal;\r\n      }\r\n      #gwd_lowpri_detail .lowpri_desc {\r\n        background: url(\'https://s1.gwdang.com/images/lowpri_desc.png\');\r\n        display: none;\r\n        height: 15px;\r\n        width: 45px;\r\n        position: absolute;\r\n        top: 77px;\r\n        left: 101px;\r\n      }\r\n      #gwd_lowpri_detail .gwd-item-list .latestCreate {\r\n        display: inline-block;\r\n        background-position: -40px -113px;;\r\n      }\r\n      #gwd_lowpri_detail .gwd-item-list .highest_discount {\r\n        display: inline-block;\r\n        background-position: -40px -14px;\r\n      }\r\n    </style>\r\n  </li>\r\n</ul>'
	},
	function(t, e) {
		t.exports = '<div id="gwd_lowpri_min" class="lowp_bg"></div>\r\n<div id="gwd_lowpri" class="gwd_lowpri_right">\r\n  <div class="gwd_lowpri_head">\r\n    <span>同类历史最低价:</span>\r\n    <span class="close_btn lowp_bg" title="关闭"></span>\r\n  </div>\r\n  <div class="gwd_lowpri_content">\r\n    <ul class="gwd_lowpri_list">\r\n      {{each data}}\r\n        <li class="gwd_lowpri_item gwd_index{{($index==data.length-1)?$index:0}}">\r\n          <div class="gwd_dp_info">\r\n            <a class="gwd_dp_img" href="{{$value.url}}" target="_blank" >\r\n              <img src="" data-original="{{$value.img_url}}">\r\n            </a>\r\n          </div>\r\n          <div class="gwd_dp_des">\r\n            <a class="gwd_dp_title" href="{{$value.url}}" target="_blank" title="{{$value.title}}">{{$value.title}}</a>\r\n            <a class="gwd_last_price">¥{{$value.last_price}}</a>\r\n            <a class="gwd_price" >¥{{$value.price}}</a>\r\n          </div>\r\n          <span class="lowpri_desc\r\n          {{if ($value.latestCreate) }}\r\n            latestCreate\r\n          {{/if}}\r\n          {{if ($value.highest_discount) }}\r\n            highest_discount\r\n          {{/if}}\r\n          ">\r\n          </span>\r\n        </li>\r\n      {{/each}}\r\n    </ul>\r\n  </div>\r\n  <div class="pages">\r\n    <span class="page_left lowp_bg"></span>\r\n    <span class="perpage">1</span>\r\n    <span>/</span>\r\n    <span class="totalpage">{{pagenum}}</span>\r\n    <span class="page_right lowp_bg"></span>\r\n  </div>\r\n  <style type="text/css">\r\n  /*猜你喜欢模块*/\r\n  #gwd_lowpri_min{\r\n    position: fixed;\r\n    right: 0px;\r\n    height: 125px;\r\n    top: 176px;\r\n    width: 34px;\r\n    z-index: 2147483640;\r\n    cursor: pointer;\r\n    background-position: -15px -18px;\r\n  }\r\n  #gwd_lowpri_min:hover{\r\n    background-position: -155px -18px;\r\n  }\r\n  #gwd_lowpri{\r\n    position: fixed;\r\n    right: 0px;\r\n    top: 176px;\r\n    width:200px;\r\n    border: 1px solid #dbdbdb;\r\n    background-color: #fff;\r\n    z-index: 2147483640;\r\n  }\r\n  #gwd_lowpri .close_btn{\r\n    display: inline-block;\r\n    position: absolute;\r\n    left: 8px;\r\n    top: 5px;\r\n    cursor: pointer;\r\n    height: 20px;\r\n    width: 20px;\r\n    background-position: -81px -55px;\r\n  }\r\n  #gwd_lowpri .gwd_lowpri_content{\r\n    height: 355px;\r\n    overflow: hidden;\r\n    position: relative;\r\n  }\r\n  #gwd_lowpri .gwd_lowpri_content._iehack {\r\n    height: 365px;\r\n  }\r\n  #gwd_lowpri .gwd_lowpri_list {\r\n    position: absolute;\r\n    top: 0px;\r\n    margin: 0px;\r\n  }\r\n  #gwd_lowpri .gwd_lowpri_head{\r\n    height: 35px;\r\n    line-height: 35px;\r\n    color:#5e5e5e;\r\n    font-weight: bold;\r\n    font-size: 12px;\r\n    text-align: center;\r\n    background-color: #f7f7f7;\r\n  }\r\n  #gwd_lowpri ul li{\r\n    height: 88px;\r\n    width: 230px;\r\n    padding-top: 6px;\r\n    vertical-align: middle;\r\n    position: relative;\r\n    list-style: none;\r\n  }\r\n  .gwd_lowpri_right .lowpri_desc {\r\n    background: url(\'https://s1.gwdang.com/images/lowpri_desc.png\');\r\n    display: none;\r\n    height: 15px;\r\n    width: 45px;\r\n    position: absolute;\r\n    top: 67px;\r\n    left: 32px;\r\n  }\r\n  #gwd_lowpri.gwd_lowpri_right .latestCreate {\r\n    display: inline-block;\r\n    background-position: -143px -113px;;\r\n  }\r\n  #gwd_lowpri.gwd_lowpri_right .highest_discount {\r\n    display: inline-block;\r\n    background-position: -145px -17px;\r\n  }\r\n  #gwd_lowpri ul li.gwd_index0{\r\n    border-bottom: 1px dotted #dbdbdb;\r\n  }\r\n  #gwd_lowpri .gwd_dp_info{\r\n    height: 80px;\r\n    width: 80px;\r\n    float: left;\r\n    margin: 0 auto;\r\n    display: inline-block;\r\n  }\r\n  #gwd_lowpri .gwd_dp_info .gwd_dp_img{\r\n    display: inline-block;\r\n    height: 80px;\r\n    width: 80px;\r\n  }\r\n  #gwd_lowpri .gwd_dp_info a img{\r\n    width: 70px;\r\n    height: 70px;\r\n    margin: 5px;\r\n  }\r\n  #gwd_lowpri .gwd_price{\r\n    color:#e4393c;\r\n    display: inline-block;\r\n    margin-left: 4px;\r\n  }\r\n  #gwd_lowpri .gwd_price:hover {\r\n    color:#e4393c;\r\n    text-decoration: none;\r\n  }\r\n  .pages {\r\n    height: 38px;\r\n    border-top: 1px solid #e1e1e1;\r\n  }\r\n  .pages span {\r\n    display: inline-block;\r\n    text-align: center;\r\n    cursor: pointer;\r\n    width: 12px;\r\n    float: left;\r\n    margin-top: 10px;\r\n  }\r\n  .pages .page_left {\r\n    margin-left: 27px;\r\n    margin-right: 35px;\r\n    width: 20px;\r\n    float: left;\r\n    height: 20px;\r\n    background-position: -98px -74px;\r\n  }\r\n  .pages .page_right {\r\n    margin-left: 35px;\r\n    width: 20px;\r\n    float: left;\r\n    height: 20px;\r\n    background-position: -121px -74px;\r\n  }\r\n  .lowp_bg {\r\n    background: url(\'https://s1.gwdang.com/images/low_price_right_1.png\');\r\n  }\r\n  #gwd_lowpri .gwd_dp_des {\r\n    display: inline-block;\r\n    height: 80px;\r\n    width: 119px\r\n  }\r\n  #gwd_lowpri .gwd_dp_des .gwd_last_price {\r\n    color: #999;\r\n    text-decoration: line-through;\r\n    margin-left: 9px;\r\n}\r\n  }\r\n  #gwd_lowpri .gwd_dp_des .gwd_price {\r\n    margin-left: 8px;\r\n  }\r\n  #gwd_lowpri .gwd_dp_title {\r\n    height: 56px;\r\n    display: block;\r\n    width: 105px;\r\n    overflow: hidden;\r\n    margin-left: 5px;\r\n    padding: 1px;\r\n    color: #5f5f5f;\r\n    font: 12px/150% Arial,Verdana,"\\5b8b\\4f53";\r\n  }\r\n  #gwd_lowpri .gwd_dp_title:hover {\r\n    color: #666;\r\n  }\r\n  #gwd_lowpri *{\r\n    -webkit-box-sizing: border-box;\r\n    box-sizing: border-box;\r\n  }\r\n  </style>\r\n</div>'
	},
	function(t, e, n) {
		(function(e, i) {
			"use strict";

			function a(t) {
				t = g(t);
				var n = u();
				f = t.length % n == 0 ? t.length / n : parseInt(t.length / n) + 1, e("body").append(w.compile(m)({
					data: t,
					pagenum: f
				})), s(), l(), o(0, n), r(), d(), i.IE7 && e("#gwd_lowpri ul li").css("padding-top", "0px")
			}

			function o(t, n) {
				var i = e(".gwd_lowpri_right li");
				v.init(i, t, n, 70)
			}

			function r() {
				e(window).width() <= 1280 && (b = !1, e("#gwd_lowpri").hide())
			}

			function s() {
				var t = u(),
					n = 0;
				6 == t && (n = 528), 5 == t && (n = 440), 4 == t && (n = 352), 3 == t && (n = 264), i.IE7 && (n += t), e("#gwd_lowpri .gwd_lowpri_content").css("height", n + "px")
			}

			function l() {
				var t = e("#gwd_guess_favor");
				if (e(t).is(":visible")) {
					var n = e(t).offset(),
						i = e(".gwd_lowpri_right").offset(),
						a = e(window).width() - 202,
						o = e("#gwd_guess_favor").outerWidth(),
						r = e("#gwd_guess_favor").outerHeight();
					n.left + o >= a && i.top <= n.top + r ? e(".gwd_lowpri_right").hide() : e(".gwd_lowpri_right").show()
				}
			}

			function d() {
				e(".page_right").on("click", function() {
					h(), c(1)
				}), e(".page_left").on("click", function() {
					p(), c(-1)
				}), e(".close_btn").on("click", function() {
					b = !1, e("#gwd_lowpri").hide()
				}), e("#gwd_lowpri_min").on("click", function() {
					b = !1, e("#gwd_lowpri").show()
				}), e(window).scroll(function() {
					b && (e(window).scrollTop() > 1e3 && e("#gwd_lowpri").hide(), e(window).scrollTop() < 1e3 && e("#gwd_lowpri").show(), l())
				}), e(window).resize(function() {
					b && l()
				})
			}

			function c(t) {
				var n = parseInt(e(".perpage").text());
				1 == t && (n == f ? n = 1 : (o(n * u(), (n + 1) * u()), n += 1)), -1 == t && (1 == n ? n = f : (n -= 1, o(n * u(), (n + 1) * u()))), e(".perpage").text(n)
			}

			function p() {
				var t = e("#gwd_lowpri .gwd_lowpri_content").height(),
					n = parseInt(e("#gwd_lowpri .gwd_lowpri_list").css("top").replace("px", "")),
					a = parseInt(e(".perpage").text());
				i.IE7 ? (1 == a && (n = -t * f), e("#gwd_lowpri .gwd_lowpri_list").css("top", n + t + "px")) : (1 == a && (n = -t * f, e("#gwd_lowpri .gwd_lowpri_list").css("top", n + "px")), e("#gwd_lowpri .gwd_lowpri_list").css("top", n + t + "px"))
			}

			function h() {
				var t = e("#gwd_lowpri .gwd_lowpri_content").height(),
					n = parseInt(e("#gwd_lowpri .gwd_lowpri_list").css("top").replace("px", "")),
					a = parseInt(e(".perpage").text());
				i.IE7 ? (a == f && (n = t), e("#gwd_lowpri .gwd_lowpri_list").css("top", n - t + "px")) : (a == f && (n = t, e("#gwd_lowpri .gwd_lowpri_list").css("top", n + "px")), e("#gwd_lowpri .gwd_lowpri_list").css("top", n - t + "px"))
			}

			function u() {
				var t = 0,
					n = e(window).height();
				return t = 667 > n ? 3 : 756 > n ? 4 : 845 >= n ? 5 : 6
			}

			function g(t) {
				for (var e = [], n = 0; n < t.length; n++) e.push(t[n]);
				return e.sort(function() {
					return Math.random() - Math.random()
				})
			}
			var m, f, w = n(13),
				_ = n(18),
				v = n(89),
				b = !0;
			t.exports.init = function(t, e) {
				0 != _.get("show_lowpri") && "luyou" == i.btype && (m = e, a(t))
			}
		}).call(e, n(12), n(1))
	},
	function(t, e, n) {
		(function(e) {
			"use strict";

			function n(t, n, i, a) {
				var o = "undefined" == typeof i || "" == i || null == i ? 90 : i,
					r = t,
					s = new Image;
				"msie" == e.browser.agent && e.browser.ver < 11 ? s.onreadystatechange = function() {
					if ("complete" == s.readyState || "loaded" == s.readyState) {
						if (s.width > 0 && s.height > 0) {
							var e = o / s.width < o / s.height ? o / s.width : o / s.height;
							1 >= e ? (n.css("width", s.width * e), n.css("height", s.height * e)) : (n.css("width", s.width), n.css("height", s.height))
						}
						n.attr("src", t)
					}
				} : s.onload = function() {
					if (1 == s.complete) {
						if (s.width > 0 && s.height > 0) {
							var e = o / s.width < o / s.height ? o / s.width : o / s.height;
							1 >= e ? (n.css("width", s.width * e), n.css("height", s.height * e)) : (n.css("width", s.width), n.css("height", s.height))
						}
						n.attr("src", t), a && a()
					}
				}, s.onerror = function() {
					n.attr("src", e.s_server + "/images/dp_default.jpg"), n.attr("data-original", e.s_server + "/images/dp_default.jpg")
				}, s.src = r
			}
			t.exports.init = function(t, e, i, a) {
				var o = 90;
				a && (o = a);
				for (var r = e; i > r; r++) {
					var s = t.eq(r).find("img").eq(0);
					s.attr("data-original") != s.attr("src") && n(s.attr("data-original"), s, o)
				}
			}
		}).call(e, n(1))
	},
	function(t, e, n) {
		(function(e, i) {
			"use strict";

			function a(t) {
				var a = n(91);
				e("#gwdang-main").append(_.compile(a)({
					remo: "点击查看全部值得买商品",
					data: t,
					site_id: f
				})), i.init_item_list("zhidemai"), i.set_item_args("zhidemai"), i.set_page_args("zhidemai"), i.load_image("zhidemai", 0, i.page_size), e("#gwd_zhidemai").show()
			}

			function o(t) {
				m = t.length;
				var a = r(m),
					o = n(92);
				e("#gwd-cu").after(_.compile(o)({
					data: t,
					pageInfo: a,
					site_id: f
				})), i.setPageArgs("gwd-compare-zdm", a.perPageSize), i.autoFixWidth()
			}

			function r(t) {
				var n = e(window).width(),
					i = {},
					a = parseInt((e(window).width() - 66) / 200);
				return t >= a ? (i.pages = !0, i.pagewidth = n - 2) : (i.pages = !1, i.pagewidth = 200 * t + 2), i.dpnum = t, i.pagenum = parseInt(t % a == 0 ? t / a : t / a + 1), i.perPageSize = a, i
			}

			function s(t) {
				for (var e = n(49), a = 0; a < t.length; a++) {
					var o = {
						site_id: t[a].site_id,
						mod: "zdm",
						url: t[a].url,
						union: i.union.split("_")[1],
						is_mobile: "1" == t[a].is_mobile ? !0 : !1,
						dp_id: t[a].url_crc + "-" + t[a].site_id
					};
					t[a].url = e.init(o)
				}
				return t
			}

			function l(t) {
				for (var n = 0; m > n; n++) t > n ? e("#gwd_zdm_detail .gwd-list-item").eq(n).css("display", "block") : e("#gwd_zdm_detail .gwd-list-item").eq(n).css("display", "none")
			}

			function d() {
				e(".zdm_btn").on("mouseenter", function() {
					clearTimeout(w), e(this).addClass("gwd-compare-item-hover"), e(this).addClass("zdm_btn_hover"), e("#gwd_zdm_detail").show()
				}), e(".zdm_btn").on("mouseleave", function() {
					clearTimeout(w);
					var t = this;
					w = setTimeout(function() {
						e(t).removeClass("gwd-compare-item-hover"), e(t).removeClass("zdm_btn_hover"), e("#gwd_zdm_detail").hide()
					}, 200)
				}), e("#gwd_zdm_detail").on("mouseenter", function() {
					clearTimeout(w), e(this).show()
				}), e("#gwd_zdm_detail").on("mouseleave", function() {
					e(".zdm_btn").removeClass("gwd-compare-item-hover"), e(".zdm_btn").removeClass("zdm_btn_hover"), e(this).hide()
				}), e(window).resize(function() {
					var t = parseInt((e(window).width() - 66) / 200),
						n = r(m);
					e("#gwd_zdm_detail").css("width", n.pagewidth), l(t), i.setPageArgs("gwd-compare-zdm", t), e("#page-total-zdm").text(n.pagenum), i.autoFixWidth()
				})
			}

			function c() {
				e("#gwd_zhidemai").on("mouseenter", function() {
					e(this).addClass("gwd_zhidemai_hover"), e("#gwd_zhidemai_detail .all-products").css("width", e(window).width() - 80), e("#gwd_zhidemai_detail").show()
				}), e("#gwd_zhidemai").on("mouseleave", function() {
					var t = this;
					w = setTimeout(function() {
						e(t).removeClass("gwd_zhidemai_hover"), e("#gwd_zhidemai_detail").hide()
					}, 200)
				}), e("#gwd_zhidemai_detail").on("mouseenter", function() {
					clearTimeout(w)
				}), e("#gwd_zhidemai_detail").on("mouseleave", function() {
					e("#gwd_zhidemai").removeClass("gwd_zhidemai_hover"), e(this).hide()
				}), e("#gwd_zhidemai_detail .left-page").on("click", function() {
					i.change_page("zhidemai", -1)
				}), e("#gwd_zhidemai_detail .right-page").on("click", function() {
					i.change_page("zhidemai", 1)
				})
			}

			function p() {
				var t = '<a id="gwd_zhidemai" style="display:none"><span class="zhidemai_icon"></span><span class="zhidemai_text">值得买</span></a>';
				e("#gwdang-main-contents").append(_.compile(t)({}))
			}

			function h() {
				"top" == i.style && p()
			}

			function u(t) {
				var e = s(t.data);
				"top" == i.style && (a(e), c()), "bottom" == i.style && (o(e), d())
			}

			function g(t) {
				var n = i.server + "/extension?ac=zdm&site_id=" + f;
				v.get(n).done(function(n) {
					n && n.data.length > 0 ? t(n) : e("#gwd_zhidemai").remove()
				}).fail(function(t) {
					e("#gwd_zhidemai").remove()
				})
			}
			var m, f, w, _ = n(13),
				v = n(16);
			t.exports.init = function(t) {
				i.site.indexOf("taobao") > -1 || "tmall" == i.site || (f = t, h(), g(u))
			}
		}).call(e, n(12), n(1))
	},
	function(t, e) {
		t.exports = '<div id="gwd_zhidemai_detail" class="panel price_compare">\r\n  <div class="recom-title">\r\n    <a href="https://www.gwdang.com/promotion/zhi/00000000-{{site_id}}--edit_time-desc-1----.html" target="_blank">{{remo}}</a>\r\n  </div>\r\n  <div class="panel-wrap">\r\n    <div class="pages">\r\n      第&nbsp;\r\n      <span id="zhidemai-current-page" class="current-page">1</span>\r\n      &nbsp;页，共&nbsp;\r\n      <span id="zhidemai-page-num" class="page-num">1</span>\r\n      &nbsp;页\r\n    </div>\r\n    <div class="left-page">\r\n      <a title="上一页" target="_self" href="javascript:"></a>\r\n    </div>\r\n    <div class="all-products">\r\n      <ul id="zhidemai-item-list">\r\n        {{each data}}\r\n          <li id="zhidemai-prod-item-{{$index}}">\r\n            <a href="{{$value.url}}" target="_blank" title="{{$value.title}}" class="small-img">\r\n              <img src="http://img.gwdang.com/c_zoom,w_90/zhi_{{$value.dp_id}}.png">\r\n            </a>\r\n              <span class="gwd-price">{{$value.price_info}}</span>\r\n            <p class="dp">\r\n              <a href="#" class="zdm_quan" style="{{($value.discount_code != \'\' || $value.coupon_url == \'\')?\'display:none\':\'\'}}">\r\n                <span class="red_bg">需用券</span>\r\n                <span class="quan_b">点此领券</span>\r\n              </a>\r\n              <span class="zdm_ma" style="{{if !$value.discount_code}}display:none;{{/if}}">\r\n                <span class="red_bg">需用码</span>\r\n                <span class="ma_num">{{$value.discount_code}}</span>\r\n              </span>\r\n              <a href="{{$value.url}}" target="_blank" title="{{$value.title}}">\r\n                <span class="gwd_title">{{$value.title}}</span>\r\n              </a>\r\n            </p>\r\n            \r\n          </li>\r\n        {{/each}}\r\n      </ul>\r\n    </div>\r\n    <div class="right-page">\r\n      <a title="下一页" target="_self" href="javascript:"></a>\r\n    </div>\r\n  </div>\r\n  <div class="panel-shadow"></div>\r\n  <style type="text/css">\r\n    #gwd_zhidemai_detail{\r\n      display: none;\r\n    }\r\n    #gwd_zhidemai_detail .left-page{\r\n      left: 5px;\r\n    }\r\n    #gwd_zhidemai_detail .all-products{\r\n      left: 35px;\r\n    }\r\n    #gwd_zhidemai_detail .recom-title{\r\n      position: absolute;\r\n      left: 35px;\r\n      top: 5px;\r\n      z-index: 9999999999;\r\n    }\r\n    .recom-title a{\r\n      font-weight: bold;\r\n    }\r\n    .gwdang-main .panel-wrap .all-products ul li a img{\r\n      width: 90px;\r\n      height: 90px;\r\n    }\r\n    #gwd_zhidemai.gwd_zhidemai_hover{\r\n      height: 38px;\r\n      background-color: #fff;\r\n      color: #177EE5;\r\n    }\r\n    #gwd_zhidemai .zhidemai_icon{\r\n      display: inline-block;\r\n      height: 18px;\r\n      width: 18px;\r\n      float: left;\r\n      margin-top: 9px;\r\n      margin-right: 4px;\r\n      background: url(\'https://s1.gwdang.com/images/zhidemai.png\');\r\n    }\r\n    #zhidemai-item-list .gwd-price {\r\n      height: 44px;\r\n      cursor: text;\r\n    }\r\n    #zhidemai-item-list .gwd-price:hover {\r\n      color: #E52600;\r\n    }\r\n    .zdm_quan{\r\n      display: block;\r\n    }\r\n    .zdm_quan .quan_b {\r\n      color: #0068d1;\r\n    }\r\n    #zhidemai-item-list .red_bg {\r\n      display: inline-block;\r\n      background-color: #ea3333;\r\n      border-radius: 2px;\r\n      width: 48px;\r\n      color: #fff;\r\n      margin-right: 5px;\r\n    }\r\n    #zhidemai-item-list .zdm_quan span, #zhidemai-item-list .zdm_ma span {\r\n      font-size: 12px;\r\n    }\r\n    #zhidemai-item-list .zdm_ma span{\r\n      cursor: text;\r\n    }\r\n    #zhidemai-item-list .zdm_ma .ma_num {\r\n      color: #333;\r\n    }\r\n    #zhidemai-item-list .zdm_ma .ma_num:hover{\r\n      color: #333;\r\n    }\r\n  </style>\r\n</div>'
	},
	function(t, e) {
		t.exports = '<ul id="gwd-compare-zdm"class="gwd-close-module gwd-desc gwd-compare">\r\n  <li  id="gwd-zdm" pages="{{pageInfo.pages?\'\':\'1\'}}" len="{{pageInfo.pages?\'\':pageInfo.dpnum}}">\r\n    <a class="zdm_btn"  href="https://www.gwdang.com/promotion/zhi/00000000-{{site_id}}--edit_time-desc-1----.html" target="_blank">\r\n      <span class="zmd_icon"></span>\r\n    </a>\r\n    <div id="gwd_zdm_detail" class="gwd-compare-item-detail re-gwd-compare-item-detail gwd-compare-item-detail-fixed" style="width:{{pageInfo.pagewidth}}px">\r\n      <p class="gwd-compare-item-detail-title gwd-height-auto gwd-compare-item-detail-title-fixed">\r\n        <span class="gwd-compare-item-detail-title-desc">这些商品值得买！</span>\r\n      </p>\r\n      <div class="gwd-compare-prev-page gwd-left" style="display:{{pageInfo.pages?\'block\':\'none\'}}">\r\n        <div class="gwd-bg page-arrow"></div>\r\n      </div>\r\n      <ul class="gwd-item-list">\r\n        {{each data}}\r\n          <li class="gwd-list-item " style="display:{{$index>=pageInfo.perPageSize?\'none\':\'block\'}}">\r\n            <a class="gwd-pic" href="{{$value.url}}" target="_blank" rel="noreferrer">\r\n              <img src="https://s1.gwdang.com/images/dp_default.jpg" data-original="http://img.gwdang.com/c_zoom,w_90/zhi_{{$value.dp_id}}.png" title="{{$value.title}}">\r\n            </a>\r\n            <a class="gwd-product-title" href="{{$value.url}}" target="_blank" title="{{$value.title}}" rel="noreferrer">\r\n              {{$value.title}}\r\n            </a>\r\n            <span class="gwd-price" >\r\n              {{$value.price_info}}\r\n            </span>\r\n            \r\n          </li>\r\n        {{/each}}\r\n      </ul>\r\n      <div class="gwd-compare-next-page gwd-right" style="display:{{pageInfo.pages?\'block\':\'none\'}}">\r\n        <div class="gwd-bg page-arrow"></div>\r\n      </div>\r\n      <div class="gwd-b2c-PageView gwd-b2c-PageView-fixed" style="display:{{pageInfo.pages?\'block\':\'none\'}}">\r\n        <p class="gwd-compare-item-detail-title" style="height:auto;">\r\n          <span style="float:none;padding-left:10px;" class="gwd-compare-item-detail-pages">\r\n            <em id="page-now-zdm" class="page-now">\r\n              1\r\n            </em>\r\n            /\r\n            <em id="page-total-zdm" class="page-total">\r\n              {{pageInfo.pagenum}}\r\n            </em>\r\n          </span>\r\n        </p>\r\n      </div>\r\n    </div>\r\n    <style type="text/css">\r\n      #gwd-compare-zdm>li {\r\n        height: 60px;\r\n      }\r\n      .zdm_btn{\r\n        display: inline-block;\r\n        height: 37px;\r\n        border-left: 1px solid #fff;\r\n        border-right: 1px solid #fff;\r\n        text-align: center;\r\n        position: relative;\r\n        background: #fff;\r\n        margin-top: 15px;\r\n        width: 33px;\r\n        cursor: pointer;\r\n      }\r\n      #gwd-compare-zdm .zdm_btn_hover {\r\n        margin-top: -1px;\r\n        border-bottom: 3px solid #1790dd;\r\n      }\r\n      #gwd_zdm_detail{\r\n        position: fixed;\r\n        display: none;\r\n      }\r\n      #gwd_zdm_detail img{\r\n        width: 90px;\r\n      }\r\n      #gwd_zdm_detail .gwd-compare-item-detail-title, #gwd_zdm_detail .gwd-b2c-PageView {\r\n        bottom: 241px;\r\n      }\r\n      #gwd_zdm_detail .gwd-compare-next-page{\r\n        top: 0px;\r\n      }\r\n      .zmd_icon{\r\n        background: url(\'https://s1.gwdang.com/images/zdm_icon.png\');\r\n        display: inline-block;\r\n        height: 25px;\r\n        width: 25px;\r\n        margin-top: 5px;\r\n      }\r\n      .zdm_btn_hover .zmd_icon{\r\n        margin-top: 8px;\r\n      }\r\n      #gwd_zdm_detail span.gwd-price{\r\n        white-space: normal;\r\n        font-weight: 700;\r\n        display: inline-block;\r\n        width: 175px;\r\n        font-size: 12px;\r\n      }\r\n    </style>\r\n  </li>\r\n</ul>'
	},
	function(t, e) {
		t.exports = '<div class="gwd_maxthon_setting_detail">\r\n  <div class="gwd_maxthon_setting_detail_head">\r\n    <h3 class="gwd_left">比价插件开关</h3>\r\n    <div class="gwd_maxthon_setting_detail_close_all">全部关闭</div>\r\n  </div>\r\n  <ul class="gwd_maxthon_setting_detail_body">\r\n    <li>\r\n      <div class="setting_title gwd_left">非单品页比价</div>\r\n      <div class="gwd_maxthon_option_button {{show_tip}}" op=\'show_tip\'></div>\r\n    </li>\r\n    <li>\r\n      <div class="setting_title gwd_left">促销活动提醒</div>\r\n      <div class="gwd_maxthon_option_button {{show_promo}}" op=\'show_promo\'></div>\r\n    </li>\r\n    <li>\r\n      <div class="setting_title gwd_left">价格走势</div>\r\n      <div class="gwd_maxthon_option_button {{show_wishlist}}" op=\'show_wishlist\'></div>\r\n    </li>\r\n  </ul>\r\n</div>'
	},
	function(t, e, n) {
		(function(e, i) {
			"use strict";
			var a = n(56),
				o = n(50),
				r = n(76),
				s = n(45),
				l = n(57),
				d = n(59),
				c = n(65),
				p = n(66),
				h = n(95),
				u = n(77),
				g = n(68),
				m = n(33),
				f = n(78),
				w = n(81),
				_ = n(79),
				v = e.go_union ? e.go_union : "http://u.gwdang.com/union/go",
				b = n(74),
				w = n(81),
				x = n(58),
				y = n(82),
				k = n(35),
				z = n(17),
				C = n(19),
				T = n(16),
				S = function() {
					try {
						i("#gwdang-notifier").hide(), i("#gwd_price_tip,#gwd_price_tip_detail").remove()
					} catch (t) {
						if (e.debug) throw t
					}
				};
			t.exports.close = function() {
				if ("msie" != e.browser.agent && e.check_animate()) try {
					i("body").animate({
						"padding-top": "0px"
					}, 500, "swing", function() {
						i("body").attr("style", "").css("padding-top", 0), i("#gwdang-notifier").attr("style", ""), i("#gwdang-main").hide(), i("#gwdang-mini").show()
					})
				} catch (t) {
					i("body").attr("style", "").css("margin-top", 0).css("padding-top", 0), i("#gwdang-notifier").attr("style", ""), i("#gwdang-main").hide(), i("#gwdang-mini").show()
				} else i("#gwdang-notifier").attr("style", ""), i("#gwdang-main").hide(), i("body").attr("style", "").css("margin-top", 0).css("padding-top", 0), i("#gwdang-mini").show()
			}, t.exports.float_body = function() {
				var t = "32px";
				if (t = a.fix_sfbest_top_bar(t), "msie" != e.browser.agent) {
					var n = i("body").attr("style") || "";
					n = n.replace(/padding-top[^:]*:[^;]*;?/, ""), n = n + ";padding-top:" + t + " !important;", n += "philips" == e.site || "ineigo" == e.site ? ";background-position:0 32px;" : "";
					try {
						i("body").animate({
							"padding-top": t
						}, 500, "swing", function() {
							i("body").attr("style", n)
						})
					} catch (o) {
						i("body").attr("style", n)
					}
				} else if ("amazon" != e.site) {
					var n = i("body").attr("style");
					n = n + " width:100%;margin-top:" + t + " !important;", i("body").attr("style", n)
				} else {
					var n = i("body").attr("style");
					n = n + ";margin-top:" + t + " !important;", i("body").attr("style", n)
				}
			}, t.exports.init = function(t) {
				var _ = this;
				i("#gwdang-notifier").empty(), i("#gwdang-notifier").attr("style", "display:block !important;z-index:9999999999 !important;").show(), 1 != e.p_fold && this.float_body(), e.IE6 && a.bindBgiframe(), i("#gwdang-notifier").append(i("<div>", {
					"class": "gwdang-main",
					id: "gwdang-main",
					style: "display:" + (1 == e.p_fold ? "none" : "block")
				}).append(i("<div>", {
					"class": "gwdang-nav",
					id: "gwdang-main-nav",
					style: "overflow: visible;"
				})).append(i("<div>", {
					id: e.logoName,
					"class": "logo"
				}).append(i("<a>", {})))), i("#gwdang-notifier").append(i("<div>", {
					"class": "gwdang-mini",
					id: "gwdang-mini",
					style: "width: 60px; left: 0px;display:none;"
				}).append(i("<div>", {
					"class": "gwdang-nav main",
					id: "gwdang-main-nav"
				}).append(i("<a>", {
					"class": "gwd_logo",
					href: "https://www.gwdang.com",
					target: "_blank"
				})).append(i("<a>", {
					"class": "unfold_pointer",
					href: "javascript:",
					title: "点击展开",
					id: "gwd_fold_pointer"
				})))), i("#gwd_fold_pointer").click(function() {
					i("#gwdang-mini").hide(), _.float_body(), r.mainbarfold(0), i("#gwdang-main").show()
				});
				var v = !0;
				i("#gwdang-main-nav").append(i("<div>", {
					id: "gwdang-bar-icons",
					"class": "icons pos_r",
					style: "margin-right:180px;"
				}).append(i("<a>", {
					"class": "search",
					id: "gwdang-search",
					href: "javascript:",
					title: v ? "去淘宝找宝贝" : "去购物党搜索",
					target: "_blank"
				}).click(function(t) {
					var e = i("#gwdang-search-product").val();
					if (e = i.trim(e), 1 == i("#gwdang-search-product").attr("default")) i("#gwdang-search-product").val(""), i("#gwdang-search-product").attr("default", 0), t.preventDefault();
					else if ("" != e) {
						if (v) var n = "https://s.taobao.com/search?q=" + encodeURIComponent(e);
						else var n = "https://www.gwdang.com/search?s_product=" + encodeURIComponent(e);
						i(this).attr("href", n)
					} else i("#gwdang-search-product").focus(), t.preventDefault()
				}))).append(i("<div>", {
					id: "gwdang-bar-search",
					"class": "gwdang-search-form"
				}).append(i("<form>", {
					id: "gwdang-search-form",
					action: v ? "https://s.taobao.com/search" : "https://www.gwdang.com/search",
					method: "get",
					target: "_blank"
				}).append(i("<ul>", {
					id: "search_website",
					"class": "noright"
				}).prepend(i("<li>", {
					"class": "search_website_item_hidden"
				}).html("<div><span class='website_item'>国美</span><span class='arrow'></span></div>")).prepend(i("<li>", {
					"class": "search_website_item_hidden"
				}).html("<div><span class='website_item'>一号店</span><span class='arrow'></span></div>")).prepend(i("<li>", {
					"class": "search_website_item_hidden"
				}).html("<div><span class='website_item'>当当</span><span class='arrow'></span></div>")).prepend(i("<li>", {
					"class": "search_website_item_hidden"
				}).html("<div><span class='website_item'>亚马逊</span><span class='arrow'></span></div>")).prepend(i("<li>", {
					"class": "search_website_item_hidden"
				}).html("<div><span class='website_item'>苏宁</span><span class='arrow'></span></div>")).prepend(i("<li>", {
					"class": "search_website_item_hidden"
				}).html("<div><span class='website_item'>京东</span><span class='arrow'></span></div>")).prepend(i("<li>", {
					"class": "search_website_item_hidden"
				}).html("<div><span class='website_item'>唯品会</span><span class='arrow'></span></div>")).prepend(i("<li>", {
					"class": "search_website_item_hidden"
				}).html("<div><span class='website_item'>购物党</span><span class='arrow'></span></div>")).prepend(i("<li>", {
					"class": "search_website_item_show search_website_item_select gwd-search-arrow-down "
				}).html("<div><span class='website_item'>淘宝</span><span class='arrow'></span></div>")).css("border-right-color", "#fff")).append(i("<input>", {
					id: "gwdang-search-product",
					type: "text",
					name: v ? "q" : "s_product",
					value: v ? "去淘宝找宝贝" : "去购物党搜索",
					"default": "1",
					style: "float:left;",
					default_val: v ? "去淘宝找宝贝" : "去购物党搜索"
				})).append(i("<input>", {
					type: "hidden",
					name: "from",
					value: "browser"
				})))), i("#gwdang-main-nav").append(i("<div>", {
					"class": "accurate",
					id: "gwdang-bar-compare"
				}).append(i("<div>", {
					"class": "contents",
					id: "gwdang-main-contents"
				}))), i("#gwdang-search").on("click", function(t) {
					z("click:main:search"), C.log("主工具栏搜索点击")
				}), o.init(t), i("#gwdang-main-contents").append(i("<a>", {
					href: "javascript:",
					id: "gwdang-tmall-dp",
					target: "_self",
					style: "display:none",
					"class": "gwdang-tab"
				}).append(i("<span>", {
					"class": "tmall-icon"
				})).append(i("<span>", {
					"class": "tmall_text"
				}).text("天猫")).append(i("<span>", {
					"class": "lowest taobao gwd-price"
				}))).append(i("<a>", {
					href: "javascript:",
					id: "gwdang-taobao-dp",
					target: "_self",
					style: "display:none",
					"class": "gwdang-tab"
				}).append(i("<span>", {
					"class": "taobao-icon"
				})).append(i("<span>", {
					"class": "taobao_text"
				}).text("淘宝")).append(i("<span>", {
					"class": "lowest taobao gwd-price"
				}))), i("#gwdang-main").append(i("<div>", {
					"class": "panel taobao-compare",
					id: "gwdang-tmall-dp-detail"
				})).append(i("<div>", {
					"class": "panel taobao-compare",
					id: "gwdang-taobao-dp-detail"
				})), s.init(t), l.init(t.share_good), n(70).minibar(), d.init(t, e.site), "vipshop" === e.site && k.init(), c.init(t.now, e.union), p.addPromoActive(), p.addPromo(p.getPromoData(t));
				try {
					g.init(e.where_buy_dps, e.now_dp_id, "top")
				} catch (b) {
					if (e.debug) throw b
				}
				"" != t.exact_arr.isbn && (e.isbn = t.exact_arr.isbn), h.init(t.review), u.show(t.exact_arr.isbn, "top");
				try {
					m.replaceQuan(t.quan)
				} catch (b) {
					if (e.debug) throw b
				}
				try {
					f.init("top")
				} catch (b) {
					if (e.debug) throw b
				}
				try {
					i("#gwdang-main-contents").append(i("<a>", {
						href: "javascript:",
						id: "gwdang-also_buy",
						style: "display:none;",
						"class": "gwdang-tab",
						target: "_self"
					}).append(i("<span>", {
						"class": "recom-icon-tb"
					})).append(i("<span>", {
						"class": "pointer-down"
					}))), "undefined" == typeof t.b2c.min_price && e.site.indexOf("taobao") >= 0 && i("#gwdang-also_buy").append(i("<span>").text("猜你喜欢")), i("#gwdang-main").append(i("<div>", {
						"class": "panel recommend",
						id: "gwdang-also_buy-detail"
					}))
				} catch (b) {
					if (e.debug) throw b
				}
				i("#gwdang-main-contents").append(t.promotion ? i("<a>", {
					href: t.promotion.url,
					target: "_blank",
					"class": "gwd_promo_p",
					id: "gwd_promo_btn",
					style: "position:relative;"
				}).append(i("<span>", {
					"class": "gwd_bg gwd_promo_icon",
					style: "margin-top:-5px;"
				})).append(i("<span>", {
					"class": "gwd_promo_text"
				}).text("促销")).append(i("<span>", {
					"class": "gwd_red"
				}).text(t.promotion.num)) : i("<a>", {
					href: e.c_server + "/promotion/activity/?from=browser&m=promotion",
					target: "_blank",
					id: "gwd_promo_btn",
					style: "position:relative;",
					title: "点击查看全网热门促销活动"
				}).append(i("<span>", {
					"class": "gwd_bg gwd_promo_icon",
					style: "margin-top:-5px;"
				})).append(i("<span>", {
					"class": "gwd_promo_text"
				}).text("促销"))), i("#gwdang-main-contents").append(t.quan ? i("<a>", {
					href: t.quan.url,
					id: "gwd_quan_btn",
					target: "_blank",
					style: "position:relative;"
				}).append(i("<span>", {
					"class": "gwd_bg gwd_quan_icon",
					style: "margin-top:-5px;"
				})).append(i("<span>", {
					"class": "gwd_quan_text"
				}).text("优惠券")).append(i("<span>", {
					"class": "gwd_red"
				}).text(t.quan.num)) : i("<a>", {
					href: e.c_server + "/quan/?from=browser&m=promotion",
					target: "_blank",
					id: "gwd_quan_btn",
					style: "position:relative",
					title: "点击查看全网热门优惠券"
				}).append(i("<span>", {
					"class": "gwd_bg gwd_quan_icon",
					style: "margin-top:-5px;"
				})).append(i("<span>", {
					"class": "gwd_promo_text"
				}).text("优惠券"))), i("#gwdang-main-nav").append(i("<div>", {
					"class": "feedback-close",
					id: "gwdang-feed-close"
				}).append(i("<a>", {
					href: "javascript:",
					target: "_self",
					"class": "gwd_close",
					title: "关闭购物党"
				}).click(function() {
					r.mainbarfold(1), _.close(), a.fix_sfbest_close()
				})).append(i("<a>", {
					href: e.server + "/brwext/suggest/?refer=" + encodeURIComponent(document.location.href) + "&from_device=" + y(e.from_device) + "&btype=" + (e.btype ? e.btype : ""),
					"class": "gwdang-suggest",
					id: "gwdang-suggest",
					target: "_blank",
					title: "提建议或吐槽遇到的问题"
				}).text("反馈")).append(i("<a>", {
					href: "javascript:",
					"class": "gwdang-icon favor",
					id: "gwdang-favor",
					title: "" == e.email ? "收藏并获得降价提醒" : "我的收藏夹",
					target: "_self"
				}).append("" == e.email ? "<div>登录</div><em></em><span></span><b title='收藏并获得降价提醒'>收藏夹</b>" : "<span class='hasColor'></span><b title='收藏并获得降价提醒'>我的收藏夹</b><em></em>")));
				try {
					if ("undefined" != typeof t.share_good) {
						var S = [{
							name: "sina",
							title: "分享到新浪微博"
						}, {
							name: "qq",
							title: "分享到腾讯微博"
						}, {
							name: "qzone",
							title: "分享到QQ空间"
						}, {
							name: "renren",
							title: "分享到人人网"
						}, {
							name: "douban",
							title: "分享到豆瓣"
						}];
						i("#gwdang-main").append(i("<div>", {
							id: "gwdang-share-good-detail",
							"class": "panel-share-good panel-mini",
							style: "right:42px"
						}).append(i("<div>", {
							"class": "pointer-up"
						}).html("<!--[if IE 6]>◆<![endif]-->")).append(i("<div>", {
							"class": "panel-main"
						}).append(i("<p>").text("分享优惠商品给朋友们")).append(i("<ul>", {
							id: "gwd_share_good_list"
						}))));
						for (var j = 0, I = S.length; I > j; j++) {
							var P = S[j];
							i("#gwd_share_good_list").append(i("<li>", {
								style: "float:left"
							}).append(i("<a>", {
								id: "gwdang_" + P.name,
								target: "_self",
								ahref: t.share_good[P.name].replace(/_\.webp&/i, "&"),
								title: P.title,
								href: "javascript:"
							}).append(i("<span>", {
								"class": P.name + "32"
							}))))
						}
						i("#gwd_share_good_list").delegate("a", "click", function() {
							window.open(i(this).attr("ahref"), "", "height=400, width=600, top=50%, left=50%,toolbar=no, menubar=no, resizable=no,location=no,status=no")
						})
					}
				} catch (b) {
					if (e.debug) throw b
				}
				if ("undefined" != typeof t.collectInfo && (e.collectInfo = t.collectInfo, e.site && e.site.indexOf("taobao") >= 0)) {
					var A = "";
					A = i("#J_PromoBox>strong").text(), "" == A && (A = i("#J_PromoPrice strong").text(), "" != A && (A = A.substr(1))), "" != A && (A.indexOf(" -") > 0 && (A = A.substr(0, A.indexOf(" -"))), e.collectInfo.price = A)
				}
				try {
					var E = window.location.href.toString();
					i("#gwdang-main").append(i("<div>", {
						id: "gwdang-favor-detail",
						"class": "panel-favor panel-mini"
					}).append(i("<div>", {
						"class": "pointer-up"
					}).html("<!--[if IE 6]>◆<![endif]-->")).append(i("<div>", {
						"class": "tle"
					})).append(i("<a>", {
						"class": "add",
						href: "javascript:",
						title: "收藏并获得降价提醒"
					}).text("收藏商品").click(function(t) {
						t.preventDefault(), x.toggle_favor()
					})).append(i("<span>", {
						"class": "favor-notice",
						style: "display:none"
					})).append(i("<div>", {
						"class": "panel-main"
					}).append(i("<ul>", {
						"class": "item-list",
						style: "display:none"
					})).append(i("<div>", {
						"class": "loading"
					})).append(i("<div>", {
						"class": "pop-login",
						style: "display:none"
					}).append(i("<p>").append("请先 ").append(i("<a>", {
						target: "_self",
						href: e.c_server + "/user/login?from_url=" + encodeURIComponent(E),
						style: "color:#18a0f5"
					}).text("登录")).append(" 购物党，或使用第三方账号：")).append(i("<ul>", {
						style: "margin:10px 0;height:32px;"
					}).append(i("<li>", {
						style: "float:left"
					}).append(i("<a>", {
						target: "_self",
						href: "https://www.gwdang.com/user/oauth/?pl=7&op=login&from_url=" + encodeURIComponent(location.href),
						title: "QQ登录",
						"class": "stage-icon qqq32"
					}))).append(i("<li>", {
						style: "float:left"
					}).append(i("<a>", {
						target: "_self",
						href: "https://www.gwdang.com/user/oauthh/?pl=2&op=login&from_url=" + encodeURIComponent(location.href),
						title: "新浪微博登录",
						"class": "stage-icon sina32"
					}))))).append(i("<div>", {
						"class": "other-error",
						style: "display:none"
					}).text("获取数据时出错，稍后再试试吧。"))))
				} catch (b) {
					if (e.debug) throw b
				}
				try {
					"taobao" == e.site || "tmall" == e.site ? t.collectInfo.dp_id && t.exact_arr.taobao_same_id && t.collectInfo.dp_id == t.exact_arr.taobao_same_id && t.collectInfo.price && parseInt(t.collectInfo.price) > 0 || i("#gwdang-favor-detail .add").remove() : t.now && "" == t.now.now_dp_id && i("#gwdang-favor-detail .add").remove()
				} catch (b) {
					if (e.debug) throw b
				}
				if (i("#gwdang-favor").click(function(t) {
					t.preventDefault(), x.list_favor()
				}), "amazon" == e.site && (e.width = document.documentElement.clientWidth > 0 ? document.documentElement.clientWidth : document.body.clientWidth, i(".gwdang-main").css("width", e.width)), e.IE6 && i("#gwdang-notifier").bgiframe(), this.set_panel_hover_event(), i(".panel-notice").unbind(), e.init_item_list(), i(window).resize(function() {
					e.topResizeTimer && clearTimeout(e.topResizeTimer), e.topResizeTimer = setTimeout(function() {
						e.set_item_args(), e.set_page_args(), e.width = document.documentElement.clientWidth > 0 ? document.documentElement.clientWidth : document.body.clientWidth, i(".gwdang-main").css("width", e.width), i(".all-products").css("width", e.width - 310), i("#gwdang-b2c_fuzzy-dp-detail .all-products").css("width", e.width - 80), i("#gwdang-taobao-dp-detail .all-products").css("width", e.width - 80), i(".gwdang-main .recommend .all-products").css("width", e.width - 80), e.fixWidth()
					}, 300)
				}), e.set_item_args(), e.set_page_args(), "amazon" == e.site && (e.width = document.body.clientWidth, i(".gwdang-main").css("width", e.width)), i(".all-products").css("width", e.width - 310), i(".gwdang-main .recommend .all-products").css("width", e.width - 80), i("#gwdang-b2c_fuzzy-dp-detail .all-products").css("width", e.width - 80), i("#gwdang-taobao-dp-detail .all-products").css("width", e.width - 80), e.load_image("b2c", 0, e.page_size_mini), e.load_image("b2c_fuzzy", 0, e.page_size), e.load_image("also_buy", 0, e.page_size), "" != t.exact_arr.isbn) i("#gwdang-search-product").val(t.exact_arr.isbn);
				else if ("" != t.exact_arr.brand && "" != t.exact_arr.type) i("#gwdang-search-product").val(t.exact_arr.brand + " " + t.exact_arr.type);
				else {
					var L = "" != t.exact_arr.keywords ? t.exact_arr.keywords : t.collectInfo.title;
					"" == L && (L = t.now.ctitle), L = L || "", i("#gwdang-search-product").val(L.replace(/,/g, " "))
				}
				i("#gwdang-search-product").attr("default", 0), i(".gwdang-notice-close").click(function() {
					T.get(e.server + "/brwext/permanent_id?version=2&op=set_notice&notice=" + e.notice).done(function() {
						i(".panel-notice").hide()
					})
				});
				try {
					p.insertPromoShowList(t.promotion)
				} catch (b) {
					if (e.debug) throw b
				}
				try {
					t.shop_promotions && m.insertShop(t.shop_promotions), m.insertQuanShowList(t.quan)
				} catch (b) {
					if (e.debug) throw b
				}
				try {
					var O = n(96);
					O.init()
				} catch (b) {
					if (e.debug) throw b
				}
				try {
					n(90).init(t.now.site_id)
				} catch (b) {
					if (e.debug) throw b
				}
				try {
					n(84).init(t.now)
				} catch (b) {
					if (e.debug) throw b
				}
				"taobao" === e.site || "tmall" === e.site || e.site.indexOf("taobao") > -1 || e.site.indexOf("tmall") > -1;
				try {
					n(103).init()
				} catch (b) {
					if (e.debug) throw b
				}
				try {
					w.insertSettingView(t)
				} catch (b) {
					if (e.debug) throw b
				}
				this.fixNativeTop(), e.fixWidth(), 1 == e.p_fold && (this.close(), a.fix_sfbest_close())
			}, t.exports.set_panel_hover_event = function() {
				var t = this,
					n = "mouseenter",
					a = "mouseleave";
				"msie" != e.browser.agent && (n = "mouseover", a = "mouseout"), i("#gwdang-trend").on(n, function() {
					z("hover:main:priceTrend"), C.log("主工具栏价格趋势鼠标悬浮")
				}), i("#gwdang-b2c-dp").on(n, function() {
					C.log("主工具栏比价鼠标悬浮"), z("hover:main:compare")
				}), i("#gwdang-tmall-dp").on(n, function() {
					z("hover:main:compare"), C.log("主工具栏天猫比价鼠标悬浮")
				}), i("#gwdang-taobao-dp").on(n, function() {
					z("hover:main:compare"), C.log("主工具栏淘宝比价鼠标悬浮")
				}), i("#gwdang-b2c-dp-detail").on("click", function() {
					z("click:main:compare"), C.log("主工具栏比价点击")
				}), i("#gwdang-tmall-dp-detail").on("click", function() {
					z("click:main:compare"), C.log("主工具栏天猫比价点击")
				}), i("#gwdang-taobao-dp-detail").on("click", function() {
					z("click:main:compare"), C.log("主工具栏淘宝比价点击")
				}), i(".gwdang-main .accurate .gwdang-tab").each(function(o) {
					i(this).bind(n, function(n) {
						clearInterval(e.timer2), t.mouse_over_event(i(this))
					}), i(this).bind(a, function() {
						clearInterval(e.timer), e.timer2 = setInterval(function() {
							e.tab_out(), i(".gwdang-main .panel").hide(), i(".gwdang-main .panel-mini, .gwdang-mini .panel-mini").hide(), clearInterval(e.timer2)
						}, 300)
					}), i(this).click(function() {
						clearInterval(e.timer2), "block" == i("#" + i(this).attr("id") + "-detail").css("display") ? (e.tab_out(), i(".gwdang-main .panel").hide(), i(".gwdang-main .panel-mini, .gwdang-mini .panel-mini").hide()) : t.mouse_over_event(i(this))
					})
				}), i(".gwdang-main .gwdang-icon, .gwdang-mini .gwdang-icon").each(function() {
					i(this).bind("click", function(e) {
						var n = i(this).attr("id");
						"block" != i("#" + n + "-detail").css("display") ? t.mouse_click_event(i(this)) : i("#" + n + "-detail").css("display", "none")
					})
				}), i(".gwdang-main .panel, .gwdang-mini .panel").each(function() {
					var t = i(this).attr("id");
					t = t.substr(0, t.length - 7), i(this).bind(n, function() {
						clearInterval(e.timer2), e.tab_in(i("#" + t)), i(this).show()
					}), i(this).bind(a, function() {
						clearInterval(e.timer), e.timer2 = setInterval(function() {
							e.tab_out(), i(".gwdang-main .panel").hide(), i(".gwdang-main .panel-mini, .gwdang-mini .panel-mini").hide(), clearInterval(e.timer2)
						}, 300)
					})
				}), i(".gwdang-main .panel-mini, .gwdang-mini .panel-mini").each(function() {
					i(this).bind(n, function() {
						clearInterval(e.timer2), i(this).show()
					}), i(this).bind(a, function() {
						clearInterval(e.timer), e.timer2 = setInterval(function() {
							e.tab_out(), i(".gwdang-main .panel").hide(), i(".gwdang-main .panel-mini, .gwdang-mini .panel-mini").hide(), clearInterval(e.timer2)
						}, 300)
					})
				})
			}, t.exports.fixNativeTop = function() {
				function t(t) {
					i(window).scroll(function() {
						for (var e = 0; e < t.length; e++) "fixed" == i(t[e]).css("position") ? "block" == i("#gwdang-main").css("display") ? i(t[e]).css("top", 32) : i(t[e]).css("top", 0) : i(t[e]).css("top", "auto")
					})
				}
				var n = e.site,
					a = "";
				for (var o in this.fixTopPattern) o == n && (a = this.fixTopPattern[o], t(a))
			}, t.exports.fixTopPattern = {
				"360buy": ["#pro-detail-hd"],
				yihaodian: ["#J_fixedDes"],
				zol: ["#fixedTagNav"],
				vipshop: ["#J_buy_topbar"],
				"51buy": ["#info_tit"],
				dangdang: ["#all_tab_panel"],
				gome: ["#fixtabox"],
				taobao: ["#J_TabBarWrap"],
				tmall: ["#J_TabBarBox", ".hook-float", ".tm-floatcart-link"],
				logitech: ["ul.product-detail-tab-nav"],
				apple: ["#ac-globalnav"]
			}, t.exports.mouse_over_event = function(t) {
				var n = t.attr("id");
				clearInterval(e.timer), e.timer = setInterval(function() {
					e.tab_out(), e.tab_in(i("#" + n)), i(".gwdang-main .panel").hide(), i(".gwdang-main .panel-mini, .gwdang-mini .panel-mini").hide(), i("#" + n + "-detail").show(), clearInterval(e.timer)
				}, 200)
			}, t.exports.mouse_click_event = function(t) {
				clearInterval(e.timer), clearInterval(e.timer2);
				var n = t.attr("id");
				e.tab_out(), e.tab_in(t), i(".gwdang-main .panel").hide(), i(".gwdang-main .panel-mini, .gwdang-mini .panel-mini").hide(), i("#" + n + "-detail").show()
			}, t.exports.display_search_bar_top = function(t) {
				i("#gwdang-notifier").hide().empty().show(), e.IE6 && a.bindBgiframe(), i("#gwdang-notifier").append(i("<div>", {
					"class": "gwdang-mini",
					id: "gwdang-mini",
					style: (1 == e.fold ? "width:60px" : "width:180px") + ";-webkit-border-radius: 5px 0 0 5px;"
				})), i("#gwdang-mini").append(i("<div>", {
					"class": "gwdang-nav",
					id: "gwdang-main-nav"
				})), i("#gwdang-main-nav").append(i("<a>", {
					"class": 1 == e.fold ? "fold_pointer" : "unfold_pointer",
					title: 1 == e.fold ? "点击展开" : "点击收起",
					id: "gwd_fold_pointer"
				}).click(function(t) {
					i(".gwdang-mini .panel-mini").hide();
					var n, a = (parseInt(e.fold) + 1) % 2,
						o = this;
					n = 0 == a ? 180 : 60, "msie" == e.browser.agent ? (i("#gwdang-mini").css("width", n + "px"), 0 == a ? i(o).removeClass("fold_pointer").addClass("unfold_pointer").attr("title", "点击收起") : i(o).removeClass("unfold_pointer").addClass("fold_pointer").attr("title", "点击展开"), T.get(e.server + "/brwext/permanent_id?version=2&op=set_fold&fold=" + a).done(function() {
						e.fold = a
					})) : i("#gwdang-mini").animate({
						width: n
					}, 500, function() {
						0 == a ? i(o).removeClass("fold_pointer").addClass("unfold_pointer").attr("title", "点击收起") : i(o).removeClass("unfold_pointer").addClass("fold_pointer").attr("title", "点击展开"), T.get(e.server + "/brwext/permanent_id?version=2&op=set_fold&fold=" + a).done(function() {
							e.fold = a
						})
					}), t.stopPropagation()
				})).append(i("<a>", {
					"class": "gwd_logo",
					style: "margin-left:0px;",
					href: "https://www.gwdang.com",
					target: "_blank"
				})).append(i("<a>", {
					"class": "search-mini gwdang-icon",
					id: "gwdang-search",
					title: "搜商品"
				}));
				try {
					i("#gwdang-main-nav").append(i("<a>", {
						"class": "promo gwd-icon",
						id: "gwdang-promo",
						href: t.activity.href,
						target: "_blank",
						title: t.activity.title
					}))
				} catch (n) {
					if (e.debug) throw n
				}
				try {
					i("#gwdang-main-nav").append(i("<a>", {
						"class": "sale gwd-icon",
						id: "gwdang-sale",
						href: t.quan.href,
						target: "_blank",
						style: "clear:none;border:none;",
						title: t.quan.title
					}))
				} catch (n) {
					if (e.debug) throw n
				}
				try {
					i("#gwdang-main-nav").append(i("<a>", {
						"class": "gwd-favor-mini gwd-icon",
						id: "gwdang-favor-mini",
						href: e.c_server + "/mine/collection?from=browser",
						target: "_blank",
						style: "clear:none;border:none;height:22px;",
						title: "查看我的全网收藏夹"
					}))
				} catch (n) {
					if (e.debug) throw n
				}
				i("#gwdang-main-nav").append(i("<a>", {
					href: "javascript:",
					target: "_self",
					"class": "gwd_close gwd_list_close gwd-icon",
					title: "关闭购物党"
				}).click(function() {
					S()
				})), i("#gwdang-mini").append('<div id="gwdang-search-detail" class="panel-mini panel-search"><div class="pointer-up"></div><div class="panel-main"><ul class="search-tabs"><li id="search-gwdang" class="selected">购物党</li> <li id="search-taobao">淘宝</li> <li id="search-360buy">京东</li> <li id="search-amazon">亚马逊</li> <li id="search-dangdang">当当</li> <li id="search-suning">苏宁</li></ul><form id="gwdang-search-form" target="_blank" action="' + v + '/" method="get"><input class="keyword" id="gwdang-search-title" name="s_product" type="text" value=""><input name="target_url" id="gwdang-search-target_url" value="" type="hidden" ><input name="from" id="from" value="browser" type="hidden"><input id="gwdang-search-site_id" type="hidden" name="site_id" value="0"><input class="search-keyword" id="gwdang-search-btn" type="button" style="font:14px/1.6 \'Microsoft YaHei\',tahoma,arial,SimSun;" value="搜索"></form></div></div>');
				try {
					if (t.now_keyword.length > 0) {
						var o = t.now_keyword.match(/[^\,]+/)[0];
						i("#gwdang-search-title").val(o)
					}
				} catch (n) {
					if (e.debug) throw n
				}
				e.IE6 && i("#gwdang-notifier").bgiframe(), this.set_search_option_event(), this.set_panel_hover_event();
				try {
					e.check_animate() && !e.IE6 && i(".gwdang-mini").animate({
						right: "5px"
					}, 1e3, function() {
						i(".gwdang-mini").animate({
							right: "0px"
						}, 1e3, function() {})
					})
				} catch (n) {
					i(".gwdang-mini").css("right", "0")
				}
				i(window).unbind("resize"), _.init(), b.init(), m.blinkPage(e.href)
			}, t.exports.set_search_option_event = function() {
				i(".search-tabs li").each(function() {
					i(this).click(function() {
						i(".search-tabs li").removeClass("selected"), i(this).addClass("selected")
					})
				}), i("#gwdang-search-title").keydown(function(t) {
					13 == t.which && i("#gwdang-search-btn").click()
				}), i("#gwdang-search-btn").click(function() {
					if ("" != i("#gwdang-search-title").val()) {
						i("#gwdang-search-form").attr("action", v + "/");
						var t = i("#gwdang-search-title").val();
						t = encodeURIComponent(t), i("#search-gwdang").hasClass("selected") ? i("#gwdang-search-form").attr("action", "https://www.gwdang.com/search/") : i("#search-taobao").hasClass("selected") ? (i("#gwdang-search-site_id").val("83"), i("#gwdang-search-target_url").val("https://s8.taobao.com/search?q=" + t)) : i("#search-360buy").hasClass("selected") ? (i("#gwdang-search-site_id").val("3"), i("#gwdang-search-target_url").val("http://search.jd.com/Search?enc=utf-8&keyword=" + t)) : i("#search-amazon").hasClass("selected") ? (i("#gwdang-search-site_id").val("1"), i("#gwdang-search-target_url").val("http://www.amazon.cn/s/?field-keywords=" + t)) : i("#search-dangdang").hasClass("selected") ? (i("#gwdang-search-site_id").val("2"), i("#gwdang-search-target_url").val("http://searchb.dangdang.com/?key=" + t)) : i("#search-suning").hasClass("selected") && (i("#gwdang-search-site_id").val("25"), i("#gwdang-search-target_url").val("http://search.suning.com/emall/search.do?keyword=" + t)), i("#gwdang-search-form").submit()
					} else i("#gwdang-search-title").focus()
				})
			}
		}).call(e, n(1), n(12))
	},
	function(t, e, n) {
		var i;
		(function(a) {
			"use strict";
			i = function() {
				var t = n(12);
				return {
					modName: "gwdang-review",
					init: function(t) {
						t && "undefined" != typeof t.review_cnt && this.loadView(t)
					},
					loadView: function(e) {
						t("#gwdang-main-contents").append(t("<a>", {
							href: "javascript:",
							id: this.modName,
							target: "_self",
							"class": "gwdang-tab"
						}).append(t("<span>", {
							"class": "review-icon"
						})).append(t("<span>").text("评价")).append(t("<span>", {
							"class": "lowest gwd-price"
						}))), t("#gwdang-main").append(t("<div>", {
							"class": "panel review",
							id: this.modName + "-detail"
						}).append(t("<div>", {
							"class": "review-wrap",
							id: this.modName + "-wrap"
						})));
						var n = t("<div>", {
								"class": "ratings"
							}),
							i = t("<div>", {
								"class": "review-cnt"
							}),
							o = parseFloat(e.star_level);
						e.score > 0 && t("#" + this.modName + " .lowest").text(e.score);
						for (var r = 1; o >= 20 && 5 >= r;) i.append(t("<span>", {
							"class": "big-stars full-star"
						})), r++, o -= 20;
						for (; o >= 10 && 5 >= r;) i.append(t("<span>", {
							"class": "big-stars half-star"
						})), r++, o -= 10;
						for (; 5 >= r;) i.append(t("<span>", {
							"class": "big-stars hollow-star"
						})), r++;
						i.append(t("<span>", {
							"class": "score"
						}).text(e.score)), i.appendTo(n), n.append(t("<div>", {
							style: "clear:both"
						}).append(t("<a>", {
							target: "_blank",
							href: "https://www.gwdang.com/dp" + a.now_dp_id + "/reviews/?from=browser&m=review#tabs"
						}).append(t("<span>", {
							"class": "review-num"
						}).text(e.review_cnt)).append("人评价")).append("&nbsp;&nbsp;").append(t("<a>", {
							target: "_blank",
							href: "https://www.gwdang.com/dp" + a.now_dp_id + "/reviews/?from=browser&m=review#tabs"
						}).append(t("<span>", {
							"class": "review-num",
							style: "color:#e52600;font-size:16px;font-weight:bold;"
						}).text(e.recom_percent)).append("人推荐购买")));
						for (var s = [{
							id: "5",
							en: "five",
							cn: "力"
						}, {
							id: "4",
							en: "four",
							cn: "推"
						}, {
							id: "3",
							en: "three",
							cn: "还"
						}, {
							id: "2",
							en: "two",
							cn: "较"
						}, {
							id: "1",
							en: "one",
							cn: "很"
						}], l = 0, d = s.length; d > l; l++) {
							var c = s[l];
							n.append(t("<span>", {
								"class": "stars-" + c.en,
								title: c.cn + "荐"
							}).text(" ")).append(t("<div>", {
								"class": "bar",
								style: "width:" + e.star_bar["s" + c.id] + "px"
							})).append(t("<div>", {
								"class": "bar-grey",
								style: "width:" + (100 - parseFloat(e.star_bar["s" + c.id])) + "px"
							})).append(t("<a>", {
								href: "https://www.gwdang.com/dp" + a.now_dp_id + "/reviews/?r_stars_cnt=" + c.id + "&from=browser&m=review#tabs",
								target: "_blank"
							}).text(e.percent["s" + c.id])), "1" != c.id && n.append("<br>")
						}
						if (n.append(t("<div>", {
							style: "text-align:left;"
						}).append(t("<a>", {
							target: "_blank",
							style: "float:left;color:#1790dd;",
							href: "https://www.gwdang.com/dp" + a.now_dp_id + "/reviews/?from=browser&m=review#tabs"
						}).text("查看全部评价")).append(t("<a>", {
							target: "_blank",
							style: "color:#1790dd;float:right;display:" + (a.isbn ? "inline" : "none"),
							href: "http://book.douban.com/subject_search?search_text=" + a.isbn
						}).text("去豆瓣看书评"))), n.appendTo("#" + this.modName + "-wrap"), e.good.length > 0 || e.bad.length > 0) {
							t("#" + this.modName + "-wrap").append(t("<div>", {
								"class": "features",
								id: this.modName + "-features"
							}));
							for (var p = [{
								id: "good",
								cn: "优点"
							}, {
								id: "bad",
								cn: "缺点"
							}], l = 0, d = p.length; d > l; l++) {
								var c = p[l];
								if (e[c.id] && e[c.id].length > 0) {
									t("#" + this.modName + "-features").append(t("<div>", {
										"class": c.id
									}).append(t("<div>", {
										"class": "gwd_title"
									}).text(c.cn)).append(t("<div>", {
										"class": "tags"
									})));
									for (var h = t("#" + this.modName + "-features ." + c.id + " .tags"), u = 0, g = e[c.id].length; g > u; u++) {
										var m = e[c.id][u];
										h.append(t("<a>", {
											target: "_blank",
											title: "查看提到" + m.key + "的评论",
											href: m.url
										}).append(m.key + "(" + m.cnt + ")"))
									}
									h.append(t("<div>", {
										style: "clear:both"
									}))
								}
							}
						}
						var f = t("<div>", {
								"class": "main-review"
							}),
							w = t("<ul>");
						if (e.main_review.length > 0)
							for (var l = 0; l < e.main_review.length; l++) {
								for (var _ = e.main_review[l], v = t("<li>"), b = t("<div>", {
									"class": "review-info"
								}).append(t("<span>", {
									"class": "review-title"
								}).append(t("<a>", {
									href: _.r_url,
									target: "_blank"
								}).text(_.title))), x = parseFloat(_.star_cnt), y = 1; x >= 1 && 5 >= y;) b.append(t("<span>", {
									"class": "stars full-star"
								})), x--, y++;
								for (; x >= .5 && 5 >= y;) b.append(t("<span>", {
									"class": "stars half-star"
								})), x -= .5, y++;
								for (; 5 >= y;) b.append(t("<span>", {
									"class": "stars hollow-star"
								})), y++;
								b.appendTo(v), v.append(t("<div>").append(t("<a>", {
									"class": "nick-name",
									href: _.a_url,
									target: "_blank"
								}).text(_.author)).append(t("<span>", {
									"class": "store"
								}).text(_.site_name)).append(t("<span>", {
									"class": "date"
								}).text(_.date))).append(t("<div>").append(t("<a>", {
									href: _.r_url,
									target: "_blank"
								}).html(_.body))), v.appendTo(w), w.appendTo(f);
								break
							}
						f.appendTo("#" + this.modName + "-wrap"), t("#gwdang-review-detail").append(t("<div>", {
							"class": "panel-shadow"
						}))
					}
				}
			}.call(e, n, e, t), !(void 0 !== i && (t.exports = i))
		}).call(e, n(1))
	},
	function(t, e, n) {
		var i;
		(function(a) {
			"use strict";
			i = function() {
				function t() {
					var t;
					D.retry(function() {
						return t = Number(O("#J_TabBar .J_ReviewsCount").text()), t > 0
					}, function() {
						if (t > 0) {
							var n = "<a href ='#J_Reviews' id= 'gwd_comments' style='display:none' title='看评论'><span class='gwd_bg gwd_comments_icon'></span><span>看评论({{data.nums}})</span></a>";
							O("#gwdang-main-contents").append(N.compile(n)({
								data: {
									nums: t
								}
							})), e(), l(i)
						}
					}, 10, 1e3)
				}

				function e() {
					var t = n(97);
					O("#gwdang-main").append(N.compile(t)({
						href: "#J_Reviews"
					})), O("#gwd_comments_tag .gwd_comments_tag_neg a:lt(1)").addClass("selected"), r()
				}

				function i(t) {
					if (t.posi.length || t.neg.length) {
						var e = n(98);
						O("#gwd_comments_list").before(N.compile(e)({
								posi: t.posi,
								neg: t.neg
							})),
							function() {
								O("#gwd_comments_tag").off(), O("#gwd_comments_tag").on("click", function(t) {
									var e = t.srcElement || t.target || t.toElement;
									return e && "A" === e.tagName ? (e = O(e), e.hasClass("selected") ? e.removeClass("selected") : (O("#gwd_comments_tag span a").removeClass("selected"), e.addClass("selected"), s(O("#" + e.attr("data-id"))[0], o)), !1) : void 0
								})
							}()
					}
				}

				function o(t) {
					var e = n(99);
					O("#gwd_comments_list").html(N.compile(e)({
						comments: t
					})), "none" === O("#gwd_comments").css("display") && (O("#gwd_comments").show(), a.fixWidth())
				}

				function r() {
					function t() {
						n && clearTimeout(n);
						var t = (O("body").width() - O("#gwd_comments_detail").width()) / 2,
							e = O("#gwd_comments").offset().left;
						t > e && (t = e), O("#gwd_comments_detail").css("left", t), O("#gwd_comments").css("background", "#fff"), O("#gwd_comments_detail").show()
					}

					function e() {
						O("#gwd_comments").css("background", "transparent"), n = setTimeout(function() {
							O("#gwd_comments_detail").hide()
						}, 500)
					}
					var n;
					! function() {
						O("#gwd_comments").off(), O("#gwd_comments_detail").off(), O("#gwd_comments").on("mouseenter", t), O("#gwd_comments").on("mouseleave", e), O("#gwd_comments_detail").on("mouseenter", t), O("#gwd_comments_detail").on("mouseleave", e)
					}(), O("#gwd_comments_detail_all").on("click", function() {
						return e(), "taobao" === a.site && (O("#J_TabBar .tb-tab-anchor").eq(1)[0].click(), O("#reviews-t-1")[0].click()), !0
					})
				}

				function s(t, e) {
					return M[t.getAttribute("id")] ? void e(M[t.getAttribute("id")]) : (O("#gwd_comments_list").html('<div class="gwd_loading"></div>'), t.click(), void D.retry(function() {
						return O(".rate-tag-list").length && O(".rate-grid .tm-rate-fulltxt b").length ? !0 : !1
					}, function() {
						var n = c();
						M[t.getAttribute("id")] = n, e(n), t.click(), p()
					}, 80, 200))
				}

				function l(t) {
					O("#J_TabBar .J_ReviewsCount").click(), D.retry(function() {
						return O(".rate-tag-inner span").length > 0
					}, function() {
						t(d())
					}, 80, 200), D.retry(function() {
						return O(".rate-grid .tm-rate-content").length > 0
					}, function() {
						var t = O(".tb-r-ubox li.tb-r-neg a:lt(1)");
						t.length ? s(t[0], o) : (o(c()), p())
					}, 80, 200)
				}

				function d() {
					var t = [],
						e = [];
					return O(".rate-tag-inner span a").each(function(n, i) {
						"1" === i.getAttribute("data-posi") ? t.push({
							posi: !0,
							index: n,
							id: i.getAttribute("id"),
							_id: i.getAttribute("data-id"),
							txt: O(i).text()
						}) : e.push({
							posi: !1,
							index: n,
							id: i.getAttribute("id"),
							_id: i.getAttribute("data-id"),
							txt: O(i).text()
						})
					}), {
						posi: t,
						neg: e
					}
				}

				function c() {
					var t = [];
					return O("#J_Reviews .rate-grid tr:lt(3)").each(function(e, n) {
						n = O(n);
						var i = n.find(".tm-rate-fulltxt").html();
						i.length > 50 && (i = i.slice(0, 79) + " ..."), t.push({
							date: n.find(".tm-rate-date").text(),
							author: n.find(".col-author").html(),
							txt: i
						})
					}), t
				}

				function p() {
					O("#J_TabBar li:lt(1)").click()
				}

				function h() {
					O("#J_TabBar .tb-tab-anchor").eq(0)[0].click()
				}

				function u(t) {
					var e = n(100);
					O("#gwd_comments_list").html(N.compile(e)({
						comments: t
					})), "none" === O("#gwd_comments").css("display") && (O("#gwd_comments").show(), a.fixWidth())
				}

				function g() {
					var t = {};
					return t.midm = O(".tb-taglist-li-0 span.tb-tbcr-num").text().replace(/[\(\)]+/g, ""), t.posim = O(".tb-taglist-li-1 span.content-regarded").text().replace(/[\(\)]+/g, ""), t.negm = O(".tb-taglist-li--1 span.tb-tbcr-num").text().replace(/[\(\)]+/g, ""), t
				}

				function m() {
					var t = [];
					return O("#reviews .J_TbcRate_ReviewItem.tb-tbcr-review-item:lt(3)").each(function(e, n) {
						n = O(n);
						var i = n.find(".J_TbcRate_ReviewContent.tb-tbcr-content ").eq(0).html();
						i && (i = i.replace(/(?:\s|\<br\>)/g, "")), i.length > 50 && (i = i.slice(0, 79) + " ...");
						var a = n.find(".tb-r-avatar").html();
						a && (a = a.replace(/\<br\>/g, "")), t.push({
							date: n.find(".tb-r-date").eq(0).text(),
							author: a,
							txt: i
						})
					}), t
				}

				function f(t) {
					if (t.posim || t.negm || t.midm) {
						var e = n(101);
						O("#gwd_comments_list").before(N.compile(e)({
								data: t
							})),
							function() {
								O("#gwd_taobao_comment_left div").off(), O("#gwd_taobao_comment_left div").on("mouseenter", function() {
									O(this).attr("class").indexOf("gwd_a") > -1 && (O(".tb-taglist-li-1 input")[0].click(), O("#gwd_taobao_comment_left div").removeClass("div_hover"), O(".gwd_a").addClass("div_hover")), O(this).attr("class").indexOf("gwd_b") > -1 && (O(".tb-taglist-li-0 input")[0].click(), O("#gwd_taobao_comment_left div").removeClass("div_hover"), O(".gwd_b").addClass("div_hover")), O(this).attr("class").indexOf("gwd_c") > -1 && (O(".tb-taglist-li--1 input")[0].click(), O("#gwd_taobao_comment_left div").removeClass("div_hover"), O(".gwd_c").addClass("div_hover")), D.retry(function() {
										return O("#reviews .J_TbcRate_ReviewItem.tb-tbcr-review-item").length > 0
									}, function() {
										u(m())
									}, 80, 200)
								})
							}()
					}
				}

				function w() {
					var t = n(97);
					O("#gwdang-main").append(N.compile(t)({
						href: "#comment"
					})), r()
				}

				function _(t) {
					O("#J_TabBar .tb-tab-anchor").eq(1)[0].click(), O("#J_TabBar .tb-tab-anchor").eq(1).attr("id", "comment"), D.retry(function() {
						return O(".tb-taglist li").length > 0
					}, function() {
						t(g())
					}, 80, 200), D.retry(function() {
						return O("#reviews .J_TbcRate_ReviewItem.tb-tbcr-review-item").length > 0
					}, function() {
						u(m())
					}, 80, 200), h()
				}

				function v() {
					var t;
					D.retry(function() {
						return t = Number(O(".J_ReviewsCount").text()), t > 0
					}, function() {
						if (t > 0) {
							var e = "<a href ='#J_TabBar' id= 'gwd_comments' style='display:none' title='看评论'><span class='gwd_bg gwd_comments_icon'></span><span>看评论({{data.nums}})</span></a>";
							O("#gwdang-main-contents").append(N.compile(e)({
								data: {
									nums: t
								}
							})), w(), _(f)
						}
					}, 10, 1e3)
				}

				function b(t, e) {
					var i = n(102);
					O("#gwd_comments_list").html(N.compile(i)({
						comments: t
					})), x(e), "none" === O("#gwd_comments").css("display") && (O("#gwd_comments").show(), a.fixWidth())
				}

				function x(t) {
					"-s-3-t-3-p-0" == t && (O("#gwd_taobao_comment_left div").removeClass("div_hover"), O(".gwd_a").addClass("div_hover")), "-s-2-t-3-p-0" == t && (O("#gwd_taobao_comment_left div").removeClass("div_hover"), O(".gwd_b").addClass("div_hover")), "-s-1-t-3-p-0" == t && (O("#gwd_taobao_comment_left div").removeClass("div_hover"), O(".gwd_c").addClass("div_hover"))
				}

				function y(t) {
					if (t.posim || t.negm || t.midm) {
						var e = n(101);
						O("#gwd_comments_list").before(N.compile(e)({
								data: t
							})),
							function() {
								O("#gwd_taobao_comment_left div").off(), O("#gwd_taobao_comment_left div").on("mouseenter", function() {
									O(this).attr("class").indexOf("gwd_a") > -1 && z(P, "-s-3-t-3-p-0"), O(this).attr("class").indexOf("gwd_b") > -1 && z(A, "-s-2-t-3-p-0"), O(this).attr("class").indexOf("gwd_c") > -1 && z(E, "-s-1-t-3-p-0")
								})
							}()
					}
				}

				function k(t, e) {
					"-s-3-t-3-p-0" == e && t.comments && (P = t.comments), "-s-2-t-3-p-0" == e && t.comments && (A = t.comments), "-s-1-t-3-p-0" == e && t.comments && (E = t.comments)
				}

				function z(t, e) {
					if (t) b(C(t), e);
					else {
						var n = location.href.match(/[0-9]+/)[0],
							i = "http://s.club.jd.com/productpage/p-" + n + e + ".html?";
						a.chrome_extension || (i += "callback=?"), S(i, function(t) {
							k(t, e), b(C(t.comments), e)
						})
					}
				}

				function C(t) {
					for (var e = [], n = t.length > 3 ? 3 : t.length, i = 0; n > i; i++) {
						var a = t[i].content;
						a.length > 50 && (a = a.slice(0, 79) + " ..."), e.push({
							date: t[i].creationTime,
							txt: a,
							author: t[i].nickname,
							imgurl: location.protocol + "//" + t[i].userImageUrl
						})
					}
					return e
				}

				function T(t) {
					var e = {};
					t.comments && (E = t.comments), j(t.productCommentSummary.commentCount), e.midm = t.productCommentSummary.generalCount, e.posim = t.productCommentSummary.goodCount, e.negm = t.productCommentSummary.poorCount, y(e), t.comments.length > 0 ? b(C(t.comments), "-s-1-t-3-p-0") : z(null, "-s-3-t-3-p-0")
				}

				function S(t, e) {
					a.chrome_extension && (t = t.replace(/&?callback=\?/, "")), O.getJSON(t).done(function(t) {
						e(t)
					})
				}

				function j(t) {
					if (0 != t) {
						var e = "<a href ='#J_TabBar' id= 'gwd_comments' style='display:none' title='看评论'><span class='gwd_bg gwd_comments_icon'></span><span>看评论({{data.nums}})</span></a>";
						O("#gwdang-main-contents").append(N.compile(e)({
							data: {
								nums: t
							}
						})), w()
					}
				}

				function I() {
					var t = location.href.match(/[0-9]+/)[0],
						e = "http://s.club.jd.com/productpage/p-" + t + "-s-1-t-3-p-0.html?callback=?";
					S(e, T)
				}
				var P, A, E, L = {},
					O = n(12),
					N = n(13),
					D = n(76),
					M = {};
				return L.init = function() {
					a.IE6 || a.IE7 || ("360buy" === a.site && I(), a.IE8 || ("tmall" === a.site && t(), "taobao" === a.site && v()))
				}, L
			}.call(e, n, e, t), !(void 0 !== i && (t.exports = i))
		}).call(e, n(1))
	},
	function(t, e) {
		t.exports = "<div id='gwd_comments_detail'>\r\n  <ul id = 'gwd_comments_list'>\r\n  </ul>\r\n  <div id=\"gwd_comments_detail_all\"><span><a href=\"{{href}}\">查看全部</a></span></div>\r\n</div>\r\n\r\n"
	},
	function(t, e) {
		t.exports = '<div class="gwd_left gwd_border_right">\r\n  <div id = \'gwd_comments_tag\'>\r\n    {{each posi}}\r\n      <span class="gwd_comments_tag_posi"><a href="#" data-id={{$value.id}}>{{$value.txt}}<s></s></a></span>\r\n    {{/each}}\r\n    {{each neg}}\r\n      <span class="gwd_comments_tag_neg"><a href="#" data-id={{$value.id}}>{{$value.txt}}<s></s></a></span>\r\n    {{/each}}\r\n  </div>\r\n</div>'
	},
	function(t, e) {
		t.exports = '{{each comments}}\r\n  <li class=\'{{if $index === 0}}gwd_first{{/if}}\' >\r\n    <div class="gwd_comments_detail_txt"><span class=\'gwd_comments_detail_txt_span\'>{{#$value.txt}}</span></div>\r\n    <div class="gwd_comments_detail_author">{{#$value.author}}</div>\r\n    <div class="gwd_comments_detail_date">{{$value.date}}</div>\r\n  </li>\r\n{{/each}}'
	},
	function(t, e) {
		t.exports = '{{each comments}}\r\n  <li class=\'{{if $index === 0}}gwd_first{{/if}} comment_tb_list\' >\r\n    <div class="gwd_comments_tb_txt"><span class=\'gwd_comments_tb_txt_span\'>{{#$value.txt}}</span></div>\r\n    <div class="gwd_comments_tb_author">\r\n        <div>{{#$value.author}}</div>\r\n        <div class="gwd_comments_tb_date">{{$value.date}}</div>\r\n    </div>\r\n    \r\n  </li>\r\n{{/each}}'
	},
	function(t, e) {
		t.exports = '<div id ="gwd_taobao_comment_left" >\r\n  <div class="gwd_a">\r\n    <a class="gwd_experssion">\r\n      <span class="exp_icon icon_posi"></span>\r\n      <span class = "exp_txt exp_posi">好评</span>\r\n    </a>\r\n    <span class="exp_num ">{{data.posim}}</span>\r\n  </div>\r\n  <div class="gwd_mgtop gwd_b">\r\n    <a class="gwd_experssion">\r\n      <span class="exp_icon icon_mid"></span>\r\n      <span class = "exp_txt exp_mid">中评</span>\r\n    </a>\r\n    <span class="exp_num ">{{data.midm}}</span>\r\n  </div>\r\n  <div class="gwd_mgtop gwd_c">\r\n    <a class="gwd_experssion">\r\n      <span class="exp_icon icon_neg"></span>\r\n      <span class = "exp_txt exp_neg">差评</span>\r\n    </a>\r\n    <span class="exp_num ">{{data.negm}}</span>\r\n  </div>\r\n</div>'
	},
	function(t, e) {
		t.exports = '{{each comments}}\r\n  <li class=\'{{if $index === 0}}gwd_first{{/if}} comment_tb_list\' >\r\n    <div class="gwd_comments_tb_txt"><span class=\'gwd_comments_tb_txt_span\'>{{#$value.txt}}</span></div>\r\n    <div class="gwd_comments_tb_author">\r\n        <div class="user-item">\r\n          <img src="{{$value.imgurl}}" width="16px" height="16px" alt="" class="user-ico"> \r\n          <span class="user-name">{{$value.author}}</span> \r\n        </div>\r\n        <div class="gwd_comments_tb_date">{{$value.date}}</div>\r\n    </div>\r\n    \r\n  </li>\r\n{{/each}}'
	},
	function(t, e, n) {
		(function(e, i) {
			"use strict";
			var a = n(16),
				o = n(13),
				r = function(t, n, i) {
					var a = '<a style="padding:0;margin:0;line-height:32px;" id="zdm_img" target="_blank" href="{{url}}" title="{{title}}"><img src="{{img}}" style="height:35px"></a>';
					e("#gwdang-main-contents").append(o.compile(a)({
						url: n,
						img: t,
						title: i
					}))
				},
				s = function(t) {
					t.img && t.url && t.title && r(t.img, t.url, t.title)
				},
				l = function() {
					var t = i.server + "/extension?ac=remind&site=" + i.site + "&host=" + location.host + "&from_device=" + i.from_device;
					a.get(t).done(function(t) {
						t && t.isshow === !0 && s(t)
					}).fail(function() {})
				};
			t.exports.init = function() {
				l()
			}
		}).call(e, n(12), n(1))
	}
]);